home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1995 August: Tool Chest / Dev.CD Aug 95 TC / Dev.CD Aug 95 TC.toast / Tool Chest / Development Tools & Languages / Dylan Related / Marlais / Marlais 0.5.9-portable sources / dylan.tab.c < prev    next >
Encoding:
C/C++ Source or Header  |  1995-03-15  |  105.9 KB  |  4,074 lines  |  [TEXT/ttxt]

  1. #ifndef lint
  2. static char yysccsid[] = "@(#)yaccpar    1.8 (Berkeley) 01/20/90";
  3.  
  4. #endif
  5. #define YYBYACC 1
  6. #line 1 "dylan.y"
  7.  /* Emacs: -*- Fundamental -*- */
  8.  
  9. /*
  10.    This software is free software; you can redistribute it and/or
  11.    modify it under the terms of the GNU Library General Public
  12.    License as published by the Free Software Foundation; either
  13.    version 2 of the License, or (at your option) any later version.
  14.  
  15.    This software is distributed in the hope that it will be useful,
  16.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  17.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  18.    Library General Public License for more details.
  19.  
  20.    You should have received a copy of the GNU Library General Public
  21.    License along with this software; if not, write to the Free
  22.    Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  23.  
  24.    Original authorship and copyright notices follows
  25.  
  26.  */
  27.  
  28. /* interim-dylan.y -- dylan phrase grammar from 5/12/94 interim report */
  29.  
  30. /*
  31.  * this grammar is, i believe, an accurate translation of the
  32.  * BNF grammar in the appendix to the 5/12/94 interim report
  33.  * into yacc-friendly format.  the differences are
  34.  *
  35.  *      + where the BNF used ellipses to indicate repitition,
  36.  *        (right) recursive productions have been added.
  37.  *
  38.  *      + the grammar has been rearranged to eliminate ambiguities
  39.  *        (what yacc calls conflicts);  this grammar should have
  40.  *        no shift/reduce or reduce/reduce conflicts.  occasional
  41.  *        comments explain what had to be done in the dicier of
  42.  *        situations.
  43.  *
  44.  *      + according to notes from the partners' mailing list, a
  45.  *        few productions were omitted from the grammar in the
  46.  *        report;  these are flagged with the comment "omitted"
  47.  *        in this grammar.
  48.  *
  49.  * paul haahr
  50.  * 22 may 1994
  51.  */
  52.  
  53. /*
  54.    Marlais Revisions Copyright 1994, Joseph N. Wilson.  All Rights Reserved.
  55.  
  56.    Permission to use, copy, and modify this software and its
  57.    documentation is hereby granted only under the following terms and
  58.    conditions.  Both the above copyright notice and this permission
  59.    notice must appear in all copies of the software, derivative works
  60.    or modified version, and both notices must appear in supporting
  61.    documentation.  Users of this software agree to the terms and
  62.    conditions set forth in this notice.
  63.  */
  64.  
  65. /* 
  66.  * Modified this to have built-in rules for control constructs.
  67.  * I'll save macro implementation for a little later.
  68.  * 
  69.  * jnw@cis.ufl.edu
  70.  * 15 July 1994
  71.  */
  72.  
  73. #ifdef MACOS
  74. #define YYDEBUG 0
  75. #endif
  76.  
  77. /* #define OPTIMIZE_SPECIALIZERS */
  78.  
  79. #include "boolean.h"
  80. #include "bytestring.h"
  81. #include "error.h"
  82. #include "gc.h"
  83. #include "globaldefs.h"
  84. #include "list.h"
  85. #include "number.h"
  86. #include "object.h"
  87. #include "symbol.h"
  88. #include "table.h"
  89. #include "vector.h"
  90. #include "yystype.h"
  91.  
  92. #define alloca GC_malloc
  93.  
  94. void yyerror (char *);
  95. static Object append_bang (Object l1, Object l2);
  96.  
  97. extern char *yytext;
  98. extern Object *parse_value_ptr;
  99.  
  100. extern int yylineno;
  101.  
  102. void push_intermediate_words (Object begin_word);
  103. void pop_intermediate_words (void);
  104.  
  105. Object binding_stack;
  106. Object symtab;
  107. Object methnames, methdefs;
  108. static void push_bindings ();
  109. static void pop_bindings ();
  110. static Object bindings_top ();
  111. static Object bindings_increment ();
  112. static Object gensym (int i);
  113. static Object make_setter_expr (Object place, Object value);
  114. static int allocation_word (Object word);
  115.  
  116. #line 115 "y.tab.c"
  117. #define SYMBOL 257
  118. #define KEYWORD 258
  119. #define LITERAL 259
  120. #define STRING 260
  121. #define COLON_EQUAL 261
  122. #define GREATER_EQUAL 262
  123. #define LESSER_EQUAL 263
  124. #define NOT_EQUAL 264
  125. #define EQUAL_EQUAL 265
  126. #define EQUAL_ARROW 266
  127. #define COLON_COLON 267
  128. #define QUESTION_QUESTION 268
  129. #define ELLIPSIS 269
  130. #define UNRECOGNIZED 270
  131. #define EOF_TOKEN 271
  132. #define HASH_T 272
  133. #define HASH_F 273
  134. #define HASH_BRACKET 274
  135. #define HASH_PAREN 275
  136. #define HASH_NEXT 276
  137. #define HASH_REST 277
  138. #define HASH_KEY 278
  139. #define HASH_ALL_KEYS 279
  140. #define DEFINE 280
  141. #define END 281
  142. #define GENERIC 282
  143. #define HANDLER 283
  144. #define LET 284
  145. #define LOCAL 285
  146. #define METHOD 286
  147. #define OTHERWISE 287
  148. #define CLASS 288
  149. #define CONSTANT 289
  150. #define LIBRARY 290
  151. #define MODULE 291
  152. #define VARIABLE 292
  153. #define TEST 293
  154. #define SLOT 294
  155. #define BEGIN_TOKEN 295
  156. #define CASE 296
  157. #define IF 297
  158. #define UNLESS 298
  159. #define UNTIL 299
  160. #define WHILE 300
  161. #define BLOCK 301
  162. #define FOR 302
  163. #define SELECT 303
  164. #define USE 304
  165. #define EXPORT 305
  166. #define CREATE 306
  167. #define ELSE 307
  168. #define ELSEIF 308
  169. #define BY 309
  170. #define FINALLY 310
  171. #define THEN 311
  172. #define IN 312
  173. #define FROM 313
  174. #define TO 314
  175. #define ABOVE 315
  176. #define BELOW 316
  177. #define CLEANUP 317
  178. #define EXCEPTION 318
  179. #define YYERRCODE 256
  180. short yylhs[] =
  181. {-1,
  182.  1, 1, 1, 1, 1, 1, 0, 0, 0, 0,
  183.  0, 0, 0, 5, 5, 8, 6, 7, 7, 10,
  184.  10, 10, 9, 9, 9, 3, 3, 3, 3, 3,
  185.  3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
  186.  3, 11, 11, 12, 12, 14, 14, 13, 13, 13,
  187.  13, 19, 19, 19, 19, 16, 16, 16, 16, 18,
  188.  18, 20, 20, 20, 20, 21, 21, 21, 21, 21,
  189.  21, 25, 25, 28, 28, 29, 29, 31, 31, 31,
  190.  30, 30, 24, 24, 24, 24, 24, 24, 24, 24,
  191.  24, 41, 32, 42, 45, 33, 43, 43, 44, 44,
  192.  44, 44, 34, 35, 48, 52, 48, 51, 51, 54,
  193.  51, 51, 51, 55, 51, 50, 50, 57, 59, 36,
  194.  58, 58, 60, 64, 60, 63, 63, 65, 63, 63,
  195.  63, 66, 63, 62, 62, 62, 37, 38, 70, 73,
  196.  76, 39, 77, 77, 71, 71, 78, 78, 78, 81,
  197.  81, 81, 81, 82, 82, 72, 72, 72, 72, 74,
  198.  74, 83, 85, 40, 84, 84, 84, 87, 87, 88,
  199.  88, 46, 46, 47, 47, 49, 49, 61, 61, 68,
  200.  68, 69, 69, 75, 75, 86, 86, 2, 2, 2,
  201.  2, 95, 2, 97, 2, 2, 94, 101, 101, 101,
  202.  103, 103, 105, 105, 105, 104, 104, 91, 92, 96,
  203.  107, 107, 109, 109, 109, 110, 111, 112, 115, 115,
  204.  100, 67, 67, 114, 114, 118, 22, 22, 22, 106,
  205.  106, 106, 120, 120, 120, 120, 122, 122, 122, 123,
  206.  123, 123, 124, 124, 124, 124, 121, 121, 125, 125,
  207.  125, 127, 127, 129, 4, 4, 133, 4, 130, 130,
  208.  131, 132, 135, 132, 93, 93, 136, 136, 136, 137,
  209.  137, 137, 80, 17, 17, 99, 99, 138, 134, 139,
  210.  139, 140, 141, 141, 143, 143, 144, 144, 145, 56,
  211.  56, 23, 23, 102, 102, 98, 98, 108, 108, 53,
  212.  53, 79, 79, 89, 89, 15, 15, 27, 27, 26,
  213.  26, 128, 128, 116, 116, 90, 90, 117, 117, 113,
  214.  113, 142, 142, 126, 126, 119, 119,
  215. };
  216. short yylen[] =
  217. {2,
  218.  1, 1, 1, 1, 1, 1, 1, 2, 2, 1,
  219.  1, 2, 2, 0, 1, 0, 2, 1, 3, 0,
  220.  1, 3, 1, 1, 1, 1, 3, 3, 3, 3,
  221.  3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
  222.  3, 1, 1, 1, 2, 1, 1, 4, 4, 3,
  223.  1, 4, 4, 3, 1, 2, 1, 4, 3, 3,
  224.  1, 1, 1, 4, 1, 1, 1, 1, 1, 3,
  225.  3, 1, 2, 1, 2, 1, 3, 1, 3, 3,
  226.  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  227.  1, 0, 4, 0, 0, 10, 0, 1, 0, 1,
  228.  2, 6, 7, 4, 0, 0, 4, 0, 1, 0,
  229.  4, 1, 3, 0, 5, 2, 2, 0, 0, 10,
  230.  0, 2, 0, 0, 4, 0, 1, 0, 4, 1,
  231.  3, 0, 5, 2, 6, 2, 7, 7, 0, 0,
  232.  0, 12, 2, 3, 0, 1, 5, 3, 5, 0,
  233.  2, 2, 2, 0, 2, 0, 2, 2, 2, 0,
  234.  2, 0, 0, 10, 0, 1, 3, 2, 5, 1,
  235.  4, 0, 1, 0, 1, 0, 1, 0, 1, 0,
  236.  1, 0, 1, 0, 1, 0, 1, 4, 4, 3,
  237.  3, 0, 5, 0, 4, 10, 6, 0, 1, 3,
  238.  1, 4, 0, 2, 2, 3, 4, 5, 2, 5,
  239.  0, 3, 1, 1, 1, 3, 2, 2, 1, 2,
  240.  3, 1, 3, 1, 3, 0, 6, 7, 9, 3,
  241.  5, 7, 1, 3, 3, 1, 2, 4, 1, 2,
  242.  4, 1, 1, 3, 2, 1, 2, 3, 1, 1,
  243.  3, 3, 2, 2, 2, 5, 0, 3, 1, 4,
  244.  1, 2, 0, 5, 3, 5, 1, 3, 2, 1,
  245.  3, 2, 2, 1, 1, 0, 1, 2, 1, 1,
  246.  2, 3, 1, 3, 1, 3, 1, 3, 1, 0,
  247.  1, 0, 1, 0, 1, 0, 1, 0, 1, 0,
  248.  1, 0, 1, 0, 2, 0, 1, 0, 1, 0,
  249.  1, 0, 1, 0, 1, 0, 1, 0, 1, 0,
  250.  1, 0, 1, 0, 1, 0, 1,
  251. };
  252. short yydefred[] =
  253. {0,
  254.  0, 274, 42, 66, 0, 0, 46, 7, 47, 11,
  255.  68, 69, 0, 0, 0, 0, 257, 0, 1, 2,
  256.  3, 4, 5, 6, 92, 0, 94, 0, 0, 0,
  257.  162, 139, 118, 0, 275, 0, 0, 10, 26, 43,
  258.  0, 0, 63, 51, 61, 62, 65, 67, 83, 84,
  259.  85, 86, 87, 88, 89, 90, 91, 12, 13, 0,
  260.  73, 0, 82, 81, 0, 309, 0, 0, 0, 311,
  261.  0, 0, 194, 0, 0, 0, 317, 0, 0, 0,
  262.  0, 255, 0, 0, 0, 0, 0, 0, 0, 106,
  263.  0, 0, 0, 0, 0, 0, 0, 8, 0, 0,
  264.  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  265.  0, 0, 0, 9, 0, 0, 0, 0, 75, 60,
  266.  71, 0, 70, 0, 0, 220, 191, 0, 190, 0,
  267.  0, 0, 192, 0, 0, 0, 0, 0, 55, 0,
  268.  0, 273, 325, 0, 293, 0, 258, 0, 0, 0,
  269.  246, 0, 0, 0, 233, 236, 239, 242, 0, 0,
  270.  15, 0, 291, 117, 116, 0, 0, 0, 0, 0,
  271.  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  272.  0, 0, 0, 0, 0, 0, 0, 0, 41, 0,
  273.  0, 0, 307, 0, 50, 77, 79, 80, 0, 195,
  274.  0, 0, 189, 0, 188, 0, 269, 0, 0, 0,
  275.  0, 0, 0, 0, 0, 278, 0, 0, 0, 0,
  276.  0, 0, 250, 0, 245, 0, 0, 247, 0, 0,
  277.  64, 93, 23, 0, 24, 17, 0, 177, 104, 0,
  278.  0, 0, 0, 0, 0, 0, 0, 0, 146, 0,
  279.  0, 0, 0, 0, 48, 49, 0, 0, 0, 0,
  280.  0, 213, 214, 215, 0, 0, 209, 0, 0, 193,
  281.  268, 0, 0, 0, 321, 0, 0, 0, 54, 0,
  282.  256, 263, 0, 0, 277, 0, 244, 0, 253, 313,
  283.  0, 0, 0, 0, 234, 235, 0, 110, 0, 301,
  284.  107, 0, 0, 0, 0, 0, 0, 0, 0, 140,
  285.  0, 143, 0, 0, 0, 0, 119, 0, 59, 0,
  286.  0, 217, 218, 0, 0, 0, 0, 0, 0, 0,
  287.  0, 0, 260, 281, 52, 53, 0, 238, 241, 252,
  288.  0, 251, 0, 0, 0, 0, 19, 0, 0, 114,
  289.  113, 98, 0, 0, 0, 0, 0, 0, 0, 0,
  290.  0, 144, 0, 0, 0, 0, 0, 58, 216, 0,
  291.  299, 0, 212, 0, 0, 0, 0, 315, 0, 0,
  292.  0, 0, 0, 201, 0, 0, 0, 282, 264, 0,
  293.  0, 0, 327, 0, 227, 0, 111, 0, 0, 0,
  294.  95, 175, 103, 183, 138, 181, 137, 0, 0, 163,
  295.  0, 0, 0, 0, 0, 0, 0, 0, 225, 210,
  296.  0, 0, 208, 0, 221, 0, 0, 204, 0, 205,
  297.  0, 0, 0, 289, 0, 323, 0, 0, 272, 0,
  298.  0, 228, 22, 115, 101, 0, 0, 168, 0, 0,
  299.  0, 0, 0, 0, 0, 0, 0, 149, 0, 0,
  300.  0, 124, 0, 297, 0, 0, 231, 223, 0, 0,
  301.  206, 295, 0, 200, 0, 284, 0, 0, 271, 0,
  302.  0, 0, 0, 0, 0, 167, 0, 0, 0, 0,
  303.  136, 0, 0, 134, 196, 0, 207, 305, 197, 202,
  304.  286, 288, 229, 0, 173, 96, 0, 0, 187, 164,
  305.  161, 141, 0, 179, 120, 0, 0, 0, 232, 0,
  306.  0, 169, 0, 0, 128, 0, 125, 102, 171, 185,
  307.  142, 0, 0, 0, 132, 131, 135, 129, 0, 133,
  308. };
  309. short yydgoto[] =
  310. {34,
  311.  35, 233, 234, 235, 160, 161, 236, 162, 241, 347,
  312.  39, 40, 41, 42, 192, 193, 43, 44, 138, 45,
  313.  46, 85, 146, 47, 48, 68, 65, 61, 66, 67,
  314.  70, 49, 50, 51, 52, 53, 54, 55, 56, 57,
  315.  86, 91, 353, 401, 447, 506, 403, 89, 239, 90,
  316.  242, 167, 301, 348, 398, 164, 97, 317, 367, 461,
  317.  515, 462, 518, 493, 533, 539, 463, 407, 405, 96,
  318.  248, 310, 361, 488, 531, 523, 249, 250, 312, 81,
  319.  417, 458, 95, 410, 450, 510, 411, 484, 471, 76,
  320.  205, 203, 82, 270, 206, 200, 128, 465, 286, 330,
  321.  382, 473, 383, 384, 428, 267, 260, 372, 261, 262,
  322.  263, 264, 274, 322, 77, 379, 153, 294, 392, 154,
  323.  155, 156, 157, 158, 225, 142, 226, 289, 290, 140,
  324.  281, 147, 83, 211, 337, 136, 393, 143, 275, 276,
  325.  388, 435, 436, 437, 438,
  326. };
  327. short yysindex[] =
  328. {2681,
  329.  -46, 0, 0, 0, -249, 3475, 0, 0, 0, 0,
  330.  0, 0, 327, 327, -86, 643, 0, 87, 0, 0,
  331.  0, 0, 0, 0, 0, 2502, 0, 112, 117, 124,
  332.  0, 0, 0, 0, 0, 109, 2152, 0, 0, 0,
  333.  8, 3569, 0, 0, 0, 0, 0, 0, 0, 0,
  334.  0, 0, 0, 0, 0, 0, 0, 0, 0, -249,
  335.  0, 3901, 0, 0, 90, 0, 143, 169, 25, 0,
  336.  -28, 1548, 0, 1548, -26, -92, 0, 1101, 3616, -48,
  337.  175, 0, -74, 2201, -60, 0, -13, 3142, -42, 0,
  338.  217, 3475, 3475, 3475, 232, 242, 247, 0, 3475, 3475,
  339.  3475, 3475, 3475, 3475, 3475, 3475, 3475, 3475, 3475, 3475,
  340.  3475, 3475, 3475, 0, 3522, 3522, 337, 8, 0, 0,
  341.  0, 327, 0, 327, 327, 0, 0, 337, 0, 252,
  342.  337, 337, 0, 337, 260, 266, 3569, 108, 0, 257,
  343.  3569, 0, 0, 3475, 0, 337, 0, 337, 337, 871,
  344.  0, 10, 279, 277, 0, 0, 0, 0, -74, 53,
  345.  0, 3332, 0, 0, 0, 33, 3141, 3475, 3926, 3936,
  346.  3961, 337, 337, 3475, 4086, 2209, 2209, 4, 4, 4,
  347.  4, 4, 4, 4, -6, -6, 243, 243, 0, 3475,
  348.  3996, 305, 0, 259, 0, 0, 0, 0, -59, 0,
  349.  3522, 316, 0, 87, 0, 337, 0, 1101, 300, 8,
  350.  318, 3522, 3522, 337, 3475, 0, 4086, 319, 321, 322,
  351.  337, 91, 0, 308, 0, 328, 3475, 0, 110, 2201,
  352.  0, 0, 0, 4086, 0, 0, 324, 0, 0, 2502,
  353.  331, 334, 3986, 0, 0, 0, 339, -111, 0, 342,
  354.  -45, 2362, 4021, 3522, 0, 0, 337, 337, 337, 94,
  355.  338, 0, 0, 0, 340, 2201, 0, 118, 360, 0,
  356.  0, 3475, 145, 364, 0, 318, 366, 315, 0, 4086,
  357.  0, 0, 72, 23, 0, 308, 0, 3475, 0, 0,
  358.  865, 4086, 1585, 334, 0, 0, 3332, 0, 2728, 0,
  359.  0, 0, 120, 137, 139, 0, 3475, 3475, 3475, 0,
  360.  337, 0, 3475, 3475, 3475, 3475, 0, 3522, 0, 318,
  361.  377, 0, 0, 119, -59, 0, 382, -74, 3475, -212,
  362.  4086, 3379, 0, 0, 0, 0, -74, 0, 0, 0,
  363.  4086, 0, 1330, 365, 0, 367, 0, 3141, 3142, 0,
  364.  0, 0, -58, 133, 134, 132, -22, 4086, 4086, 4086,
  365.  394, 0, 1391, 4086, -3, 4086, 395, 0, 0, 337,
  366.  0, 337, 0, 163, 182, 337, 4032, 0, 408, -205,
  367.  -207, 181, 406, 0, 174, 337, 4086, 0, 0, 337,
  368.  425, 429, 0, 0, 0, 3332, 0, 3141, 0, 434,
  369.  0, 0, 0, 0, 0, 0, 0, 0, 436, 0,
  370.  420, 0, 3475, 3475, 3475, 3475, 172, 3426, 0, 0,
  371.  191, 1622, 0, 3475, 0, -107, 442, 0, -207, 0,
  372.  199, -212, 337, 0, 363, 0, 447, 226, 0, 1330,
  373.  334, 0, 0, 0, 0, 3475, 213, 0, 337, 214,
  374.  -22, 186, 4086, 4086, 4086, 4086, 3475, 0, 3475, -13,
  375.  216, 0, 234, 0, 337, 1330, 0, 0, 442, 3522,
  376.  0, 0, 337, 0, 442, 0, 337, 337, 0, 0,
  377.  4080, 201, 236, 471, 212, 0, 0, 237, 4086, 3890,
  378.  0, 225, 3188, 0, 0, 474, 0, 0, 0, 0,
  379.  0, 0, 0, 0, 0, 0, 337, 0, 0, 0,
  380.  0, 0, 3475, 0, 0, 3426, 461, 334, 0, -58,
  381.  442, 0, 227, 491, 0, 2776, 0, 0, 0, 0,
  382.  0, 267, 3188, 4032, 0, 0, 0, 0, 3188, 0,
  383. };
  384. short yyrindex[] =
  385. {0,
  386.  0, 0, 0, 0, 298, 0, 0, 0, 0, 0,
  387.  0, 0, 443, 496, -71, 0, 0, 0, 0, 0,
  388.  0, 0, 0, 0, 0, 273, 0, 0, 0, 0,
  389.  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  390.  1217, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  391.  0, 0, 0, 0, 0, 0, 0, 0, 0, 464,
  392.  0, 0, 0, 0, 0, 0, 445, 0, 499, 0,
  393.  11, 0, 0, 0, 0, 0, 0, 0, 0, -27,
  394.  0, 0, 916, 506, 0, 3001, 2823, 0, 0, 0,
  395.  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  396.  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  397.  0, 0, 0, 0, 339, 0, 0, 1283, 0, 0,
  398.  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  399.  0, 0, 0, 0, 507, 0, 0, 504, 0, 0,
  400.  0, 0, 0, 0, 0, 0, 0, 0, 0, 525,
  401.  0, 22, 0, 526, 0, 0, 0, 0, 530, 0,
  402.  0, 0, 0, 0, 0, 596, 288, 0, 0, 0,
  403.  0, 0, 74, 0, 235, 2137, 2203, 1676, 1742, 1824,
  404.  1908, 1974, 2055, 2068, 1512, 1589, 1380, 1446, 0, 3836,
  405.  -38, 0, 0, 0, 0, 0, 0, 0, 297, 0,
  406.  339, 0, 0, 0, 0, 0, 0, 0, 0, 1296,
  407.  543, 339, 0, 0, 0, 0, 354, 368, 552, 554,
  408.  115, 0, 0, 136, 0, 562, 0, 0, 2871, 0,
  409.  0, 0, 0, 384, 0, 0, 400, 0, 0, -41,
  410.  323, 336, 0, 3001, 3001, 3001, 0, 577, 0, 151,
  411.  0, 578, -37, 0, 0, 0, 0, 0, 0, 0,
  412.  0, 0, 0, 0, 0, 506, 0, 0, 0, 0,
  413.  0, 0, 0, 0, 0, 21, 0, 0, 0, 396,
  414.  0, 0, 0, 0, 0, 136, 0, 0, 0, 0,
  415.  0, 156, 0, 3238, 0, 0, 440, 0, 288, 0,
  416.  0, 2361, 0, 0, 0, 2265, 0, 0, 0, 0,
  417.  281, 0, 0, 0, 0, 0, 0, 0, 0, 563,
  418.  572, 0, 0, 1093, 297, 3001, 0, 149, 591, -156,
  419.  620, 0, 0, 0, 0, 0, 916, 0, 0, 0,
  420.  160, 0, 340, 0, 3001, 669, 0, 288, -33, 0,
  421.  0, 0, 352, 693, 1054, 1151, 369, 603, 604, 605,
  422.  0, 0, 0, 26, -35, 606, 0, 0, 0, 0,
  423.  0, 1411, 0, 0, 1441, 165, -36, 0, 0, 357,
  424.  357, 0, 371, 0, 0, 523, 20, 0, 0, 0,
  425.  612, 0, 0, 3001, 0, 440, 0, 288, 3285, 0,
  426.  0, 0, 0, 0, 0, 0, 0, 3094, 0, 0,
  427.  -42, 2312, 0, 0, 0, 0, 48, 378, 0, 0,
  428.  1756, 0, 0, 0, 0, 357, -30, 0, 357, 0,
  429.  2557, -156, 0, 0, 0, 0, 535, -1, 0, 0,
  430.  3238, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  431.  369, 385, 129, 95, 154, 222, 0, 0, 0, 2823,
  432.  0, 0, 0, 0, 1411, 340, 0, 0, -30, 0,
  433.  0, 0, 1411, 0, -30, 0, 0, 0, 0, 3001,
  434.  0, 759, 622, 0, 825, 0, 3001, 0, 283, 0,
  435.  0, 922, 386, 0, 0, 0, 0, 0, 0, 0,
  436.  0, 0, 0, 2417, 0, 0, 0, 3094, 0, 0,
  437.  0, 0, 0, 0, 0, -29, 387, 336, 0, 352,
  438.  628, 0, 988, 0, 0, 386, 0, 0, 0, 0,
  439.  0, 0, 386, -44, 0, 0, 0, 0, 386, 0,
  440. };
  441. short yygindex[] =
  442. {0,
  443.  0, 670, 1, 673, 2421, -265, 0, 0, -162, 278,
  444.  0, 0, -4, 0, -34, -91, 12, 0, 0, 601,
  445.  6, 478, -149, 0, 0, 0, 0, 624, 566, 17,
  446.  570, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  447.  0, 0, 0, 176, 0, 0, 0, 0, 0, -180,
  448.  -266, 0, -286, 0, 0, 238, 0, 0, 0, 0,
  449.  0, -344, -461, 0, 0, 0, -327, 0, 0, 0,
  450.  0, 0, 0, 0, 0, 0, 388, 0, 0, -55,
  451.  0, 0, 0, 246, 0, 0, 0, 0, -401, 0,
  452.  559, 0, 13, 0, 0, 0, 0, 0, -299, 0,
  453.  268, 0, 0, 0, -306, 0, 390, 0, 0, 0,
  454.  0, 0, 389, -247, 640, 0, 446, 0, 250, 0,
  455.  489, 493, 441, 448, 450, 590, 0, 457, 0, 0,
  456.  0, 407, 0, 608, 0, 538, 311, 0, 480, 0,
  457.  0, 0, 284, 0, 282,
  458. };
  459.  
  460. #define YYTABLESIZE 4351
  461. short yytable[] =
  462. {237,
  463.  37, 378, 57, 56, 222, 150, 62, 345, 150, 231,
  464.  60, 323, 58, 324, 25, 313, 324, 109, 64, 64,
  465.  57, 56, 135, 385, 194, 25, 88, 80, 304, 127,
  466.  69, 324, 351, 324, 100, 112, 352, 118, 112, 110,
  467.  111, 109, 287, 111, 380, 112, 110, 115, 109, 429,
  468.  111, 426, 427, 117, 57, 56, 105, 108, 104, 298,
  469.  283, 280, 324, 283, 536, 324, 148, 497, 125, 148,
  470.  124, 538, 420, 500, 430, 381, 423, 540, 283, 280,
  471.  381, 397, 381, 80, 127, 80, 129, 113, 154, 80,
  472.  113, 154, 169, 170, 171, 152, 468, 113, 116, 175,
  473.  176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
  474.  186, 187, 188, 189, 145, 191, 191, 251, 350, 529,
  475.  101, 278, 419, 287, 198, 385, 84, 64, 195, 64,
  476.  64, 444, 210, 445, 346, 151, 210, 203, 151, 199,
  477.  197, 69, 202, 204, 217, 207, 307, 212, 292, 429,
  478.  469, 92, 135, 214, 480, 276, 93, 204, 276, 219,
  479.  220, 224, 319, 94, 276, 495, 265, 98, 243, 147,
  480.  71, 525, 147, 499, 252, 276, 312, 277, 376, 312,
  481.  381, 535, 121, 247, 80, 524, 122, 308, 309, 131,
  482.  253, 302, 292, 132, 152, 133, 248, 152, 213, 248,
  483.  254, 191, 72, 254, 73, 74, 75, 292, 276, 123,
  484.  316, 145, 191, 191, 316, 280, 316, 269, 141, 80,
  485.  159, 222, 150, 276, 59, 279, 368, 292, 71, 222,
  486.  130, 527, 285, 346, 27, 144, 25, 344, 166, 109,
  487.  88, 152, 57, 56, 257, 258, 259, 25, 399, 400,
  488.  304, 127, 163, 324, 191, 251, 168, 99, 102, 103,
  489.  106, 107, 153, 150, 150, 153, 314, 315, 320, 321,
  490.  321, 172, 331, 150, 227, 27, 141, 152, 27, 324,
  491.  324, 173, 324, 148, 324, 324, 174, 391, 341, 324,
  492.  324, 201, 219, 27, 408, 409, 219, 72, 219, 349,
  493.  150, 151, 224, 208, 80, 154, 209, 358, 359, 360,
  494.  414, 415, 416, 363, 364, 365, 366, 215, 191, 229,
  495.  230, 303, 80, 155, 148, 148, 155, 27, 238, 377,
  496.  517, 145, 387, 232, 439, 72, 113, 72, 72, 72,
  497.  72, 72, 72, 72, 72, 255, 154, 154, 149, 150,
  498.  151, 256, 151, 265, 80, 266, 72, 72, 72, 72,
  499.  272, 273, 282, 517, 283, 284, 467, 262, 288, 287,
  500.  517, 291, 145, 145, 324, 293, 517, 475, 498, 306,
  501.  326, 321, 297, 285, 391, 311, 147, 285, 72, 299,
  502.  72, 72, 300, 151, 151, 261, 325, 434, 328, 329,
  503.  354, 80, 332, 151, 333, 292, 335, 336, 302, 371,
  504.  391, 152, 265, 453, 454, 455, 456, 355, 377, 356,
  505.  370, 72, 375, 394, 377, 396, 262, 147, 147, 292,
  506.  402, 406, 404, 80, 412, 418, 292, 292, 292, 292,
  507.  292, 292, 25, 421, 80, 276, 481, 422, 425, 302,
  508.  302, 80, 152, 152, 261, 292, 292, 489, 292, 490,
  509.  483, 431, 152, 74, 432, 292, 292, 433, 440, 441,
  510.  191, 276, 276, 446, 276, 449, 285, 80, 451, 153,
  511.  457, 276, 276, 464, 285, 470, 472, 476, 434, 434,
  512.  477, 478, 27, 482, 485, 487, 492, 505, 20, 494,
  513.  27, 74, 507, 74, 74, 74, 74, 74, 74, 74,
  514.  74, 508, 509, 377, 519, 27, 377, 512, 521, 526,
  515.  153, 153, 74, 74, 74, 74, 534, 514, 530, 292,
  516.  153, 532, 537, 27, 27, 308, 310, 76, 303, 78,
  517.  155, 27, 27, 27, 27, 27, 318, 267, 27, 27,
  518.  27, 27, 27, 105, 74, 72, 74, 74, 72, 72,
  519.  72, 72, 72, 72, 259, 243, 319, 292, 108, 292,
  520.  292, 292, 292, 292, 292, 292, 292, 211, 72, 303,
  521.  303, 155, 155, 320, 63, 4, 5, 74, 292, 292,
  522.  292, 292, 237, 2, 240, 176, 72, 72, 11, 12,
  523.  13, 14, 249, 112, 72, 72, 72, 72, 72, 72,
  524.  72, 72, 72, 72, 72, 72, 300, 156, 121, 266,
  525.  292, 320, 292, 292, 19, 20, 21, 22, 23, 24,
  526.  224, 314, 99, 176, 265, 176, 176, 176, 176, 176,
  527.  176, 176, 176, 159, 157, 158, 122, 322, 262, 165,
  528.  203, 199, 270, 292, 176, 176, 176, 176, 123, 285,
  529.  265, 265, 170, 265, 25, 160, 126, 130, 304, 36,
  530.  265, 265, 38, 443, 262, 262, 261, 262, 266, 139,
  531.  18, 268, 78, 119, 262, 262, 176, 196, 176, 176,
  532.  25, 25, 174, 25, 198, 528, 486, 491, 362, 474,
  533.  25, 25, 261, 261, 218, 261, 18, 18, 369, 18,
  534.  126, 327, 261, 261, 373, 496, 18, 18, 295, 176,
  535.  20, 74, 296, 338, 74, 74, 74, 74, 74, 74,
  536.  174, 339, 174, 174, 174, 174, 174, 174, 174, 174,
  537.  342, 228, 340, 389, 74, 271, 20, 20, 216, 20,
  538.  479, 174, 174, 174, 174, 334, 20, 20, 172, 502,
  539.  501, 0, 74, 74, 0, 0, 0, 0, 0, 0,
  540.  74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
  541.  74, 74, 0, 174, 0, 174, 174, 292, 0, 0,
  542.  292, 292, 292, 292, 292, 292, 172, 0, 172, 172,
  543.  172, 172, 172, 172, 172, 172, 0, 0, 0, 0,
  544.  292, 0, 0, 0, 0, 0, 174, 172, 172, 172,
  545.  172, 0, 0, 0, 186, 0, 0, 0, 292, 292,
  546.  0, 0, 0, 0, 0, 0, 292, 292, 292, 292,
  547.  292, 292, 292, 292, 292, 292, 292, 292, 0, 172,
  548.  0, 172, 172, 176, 0, 0, 176, 176, 176, 176,
  549.  176, 176, 186, 0, 186, 186, 186, 186, 186, 186,
  550.  186, 186, 0, 0, 0, 0, 176, 0, 0, 0,
  551.  0, 0, 172, 186, 186, 186, 186, 0, 0, 0,
  552.  0, 0, 0, 0, 176, 176, 0, 0, 0, 2,
  553.  266, 0, 176, 176, 176, 176, 176, 176, 176, 176,
  554.  176, 176, 176, 176, 222, 186, 0, 186, 186, 0,
  555.  0, 178, 0, 0, 0, 79, 266, 266, 0, 266,
  556.  19, 20, 21, 22, 23, 24, 266, 266, 0, 0,
  557.  0, 0, 0, 0, 0, 0, 0, 0, 186, 21,
  558.  174, 0, 0, 174, 174, 174, 174, 174, 174, 178,
  559.  0, 178, 178, 178, 178, 178, 178, 178, 178, 0,
  560.  0, 0, 0, 174, 0, 21, 21, 0, 21, 0,
  561.  178, 178, 178, 178, 0, 21, 21, 184, 0, 0,
  562.  0, 174, 174, 0, 0, 0, 0, 0, 0, 174,
  563.  174, 174, 174, 174, 174, 174, 174, 174, 174, 174,
  564.  174, 0, 178, 0, 178, 178, 172, 0, 0, 172,
  565.  172, 172, 172, 172, 172, 184, 0, 184, 184, 184,
  566.  184, 184, 184, 184, 184, 0, 0, 0, 0, 172,
  567.  0, 0, 0, 0, 0, 178, 184, 184, 184, 184,
  568.  0, 0, 0, 182, 0, 0, 0, 172, 172, 0,
  569.  0, 0, 0, 0, 0, 172, 172, 172, 172, 172,
  570.  172, 172, 172, 172, 172, 172, 172, 0, 184, 0,
  571.  184, 184, 186, 0, 0, 186, 186, 186, 186, 186,
  572.  186, 182, 0, 182, 182, 182, 182, 182, 182, 182,
  573.  182, 0, 0, 0, 0, 186, 0, 0, 0, 0,
  574.  0, 184, 182, 182, 182, 182, 0, 0, 0, 0,
  575.  0, 2, 221, 186, 186, 0, 0, 2, 221, 0,
  576.  0, 186, 186, 186, 186, 186, 186, 186, 186, 186,
  577.  186, 186, 186, 223, 182, 0, 182, 182, 0, 223,
  578.  180, 298, 19, 20, 21, 22, 23, 24, 19, 20,
  579.  21, 22, 23, 24, 0, 0, 0, 0, 0, 0,
  580.  0, 0, 292, 0, 0, 0, 0, 182, 0, 178,
  581.  0, 0, 178, 178, 178, 178, 178, 178, 180, 0,
  582.  180, 180, 180, 180, 180, 180, 180, 180, 0, 0,
  583.  0, 0, 178, 292, 292, 292, 292, 292, 292, 180,
  584.  180, 180, 180, 0, 0, 0, 44, 0, 0, 0,
  585.  178, 178, 0, 0, 0, 0, 0, 0, 178, 178,
  586.  178, 178, 178, 178, 178, 178, 178, 178, 178, 178,
  587.  0, 180, 0, 180, 180, 184, 0, 0, 184, 184,
  588.  184, 184, 184, 184, 44, 0, 0, 44, 44, 44,
  589.  44, 44, 0, 44, 0, 0, 0, 0, 184, 0,
  590.  0, 0, 0, 0, 180, 44, 44, 44, 44, 0,
  591.  0, 0, 45, 0, 0, 0, 184, 184, 0, 0,
  592.  0, 0, 0, 0, 184, 184, 184, 184, 184, 184,
  593.  184, 184, 184, 184, 184, 184, 0, 0, 0, 44,
  594.  44, 182, 0, 0, 182, 182, 182, 182, 182, 182,
  595.  45, 0, 0, 45, 45, 45, 45, 45, 0, 45,
  596.  0, 0, 0, 0, 182, 0, 279, 0, 0, 279,
  597.  44, 45, 45, 45, 45, 0, 0, 0, 0, 298,
  598.  0, 0, 0, 182, 279, 0, 279, 2, 0, 0,
  599.  182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
  600.  182, 182, 0, 298, 0, 45, 45, 134, 0, 39,
  601.  298, 298, 298, 0, 298, 298, 0, 0, 19, 20,
  602.  21, 22, 23, 24, 0, 0, 0, 0, 0, 298,
  603.  298, 0, 298, 0, 0, 0, 45, 0, 180, 298,
  604.  298, 180, 180, 180, 180, 180, 180, 39, 0, 0,
  605.  39, 39, 39, 39, 39, 0, 39, 0, 100, 0,
  606.  0, 180, 112, 110, 0, 109, 0, 111, 39, 39,
  607.  39, 39, 0, 0, 0, 40, 0, 0, 0, 180,
  608.  105, 108, 104, 0, 0, 0, 0, 180, 180, 180,
  609.  180, 180, 180, 180, 180, 180, 180, 180, 180, 276,
  610.  0, 0, 39, 0, 44, 0, 0, 44, 44, 44,
  611.  44, 44, 44, 40, 113, 0, 40, 40, 40, 40,
  612.  40, 0, 40, 0, 0, 0, 0, 44, 0, 230,
  613.  0, 0, 0, 39, 40, 40, 40, 40, 0, 0,
  614.  0, 37, 0, 0, 101, 44, 44, 0, 0, 0,
  615.  0, 0, 0, 44, 44, 44, 44, 44, 0, 0,
  616.  44, 44, 44, 44, 44, 0, 0, 0, 40, 0,
  617.  45, 0, 0, 45, 45, 45, 45, 45, 45, 37,
  618.  0, 0, 37, 0, 37, 37, 37, 0, 0, 0,
  619.  0, 0, 0, 45, 0, 0, 0, 0, 0, 40,
  620.  37, 37, 37, 37, 0, 0, 279, 0, 0, 0,
  621.  0, 45, 45, 0, 0, 0, 2, 78, 38, 45,
  622.  45, 45, 45, 45, 0, 0, 45, 45, 45, 45,
  623.  45, 0, 279, 279, 37, 279, 390, 279, 279, 0,
  624.  0, 0, 279, 279, 0, 0, 0, 19, 20, 21,
  625.  22, 23, 24, 0, 343, 0, 38, 0, 0, 38,
  626.  0, 38, 38, 38, 0, 37, 0, 39, 0, 0,
  627.  39, 39, 39, 39, 39, 39, 0, 38, 38, 38,
  628.  38, 99, 102, 103, 106, 107, 0, 0, 0, 0,
  629.  39, 466, 0, 0, 0, 0, 0, 0, 0, 0,
  630.  0, 0, 0, 0, 0, 30, 0, 0, 39, 39,
  631.  0, 38, 0, 0, 0, 0, 39, 39, 39, 39,
  632.  39, 276, 0, 39, 39, 39, 39, 39, 0, 0,
  633.  0, 413, 0, 40, 0, 0, 40, 40, 40, 40,
  634.  40, 40, 38, 30, 0, 0, 30, 276, 276, 30,
  635.  276, 230, 0, 0, 0, 0, 40, 276, 276, 0,
  636.  0, 0, 0, 0, 30, 30, 30, 30, 0, 0,
  637.  0, 31, 0, 0, 40, 40, 0, 230, 230, 0,
  638.  230, 0, 40, 40, 40, 40, 40, 230, 230, 40,
  639.  40, 40, 40, 40, 0, 0, 0, 0, 30, 37,
  640.  0, 0, 37, 37, 37, 37, 37, 37, 0, 31,
  641.  0, 0, 31, 0, 0, 31, 0, 0, 0, 0,
  642.  0, 0, 37, 0, 0, 0, 0, 0, 0, 30,
  643.  31, 31, 31, 31, 2, 0, 0, 0, 0, 0,
  644.  37, 37, 0, 0, 296, 0, 0, 0, 37, 37,
  645.  37, 37, 37, 33, 0, 37, 37, 37, 37, 37,
  646.  0, 0, 0, 0, 31, 19, 20, 21, 22, 23,
  647.  24, 2, 0, 0, 0, 0, 38, 0, 0, 38,
  648.  38, 38, 38, 38, 38, 0, 0, 0, 0, 0,
  649.  0, 33, 0, 0, 33, 31, 0, 33, 0, 38,
  650.  0, 0, 19, 20, 21, 22, 23, 24, 2, 0,
  651.  0, 0, 33, 33, 33, 33, 0, 38, 38, 0,
  652.  0, 0, 0, 0, 0, 38, 38, 38, 38, 38,
  653.  0, 0, 38, 38, 38, 38, 38, 32, 0, 19,
  654.  20, 21, 22, 23, 24, 0, 33, 0, 0, 0,
  655.  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  656.  0, 0, 0, 30, 0, 0, 30, 30, 30, 30,
  657.  30, 30, 0, 0, 0, 32, 0, 33, 32, 0,
  658.  0, 32, 0, 0, 0, 0, 30, 0, 0, 0,
  659.  0, 0, 0, 0, 0, 0, 32, 32, 32, 32,
  660.  0, 0, 0, 34, 30, 30, 0, 0, 0, 0,
  661.  0, 0, 30, 30, 30, 30, 30, 0, 0, 30,
  662.  30, 30, 30, 30, 0, 0, 0, 0, 0, 31,
  663.  32, 0, 31, 31, 31, 31, 31, 31, 0, 0,
  664.  0, 34, 296, 0, 34, 0, 0, 34, 0, 0,
  665.  0, 0, 31, 0, 0, 0, 0, 0, 0, 0,
  666.  0, 32, 34, 34, 34, 34, 296, 0, 0, 0,
  667.  31, 31, 0, 296, 296, 296, 296, 296, 31, 31,
  668.  31, 31, 31, 0, 35, 31, 31, 31, 31, 31,
  669.  0, 0, 296, 296, 0, 296, 34, 36, 0, 0,
  670.  0, 0, 296, 296, 0, 0, 0, 0, 0, 0,
  671.  0, 33, 0, 0, 33, 33, 33, 33, 33, 33,
  672.  0, 0, 35, 0, 0, 35, 0, 34, 35, 0,
  673.  0, 0, 0, 0, 33, 36, 0, 0, 36, 0,
  674.  0, 36, 0, 35, 35, 35, 35, 0, 0, 0,
  675.  0, 0, 33, 33, 0, 0, 36, 36, 36, 36,
  676.  33, 33, 33, 33, 33, 0, 28, 33, 33, 33,
  677.  33, 33, 0, 0, 0, 0, 0, 35, 0, 0,
  678.  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  679.  36, 0, 0, 0, 0, 32, 0, 0, 32, 32,
  680.  32, 32, 32, 32, 28, 0, 0, 28, 35, 0,
  681.  28, 0, 0, 0, 0, 0, 0, 0, 32, 100,
  682.  0, 36, 0, 112, 110, 28, 109, 0, 111, 0,
  683.  0, 0, 29, 0, 0, 0, 32, 32, 0, 0,
  684.  114, 105, 108, 104, 32, 32, 32, 32, 32, 0,
  685.  0, 32, 32, 32, 32, 32, 0, 0, 0, 28,
  686.  0, 34, 0, 0, 34, 34, 34, 34, 34, 34,
  687.  29, 0, 0, 29, 0, 113, 29, 0, 0, 0,
  688.  112, 110, 0, 109, 34, 111, 0, 0, 0, 0,
  689.  28, 29, 0, 0, 0, 0, 0, 0, 105, 108,
  690.  104, 0, 34, 34, 0, 101, 0, 0, 0, 0,
  691.  34, 34, 34, 34, 34, 0, 0, 34, 34, 34,
  692.  34, 34, 0, 0, 0, 29, 0, 0, 0, 0,
  693.  0, 0, 113, 0, 16, 0, 0, 0, 0, 16,
  694.  0, 0, 35, 0, 0, 35, 35, 35, 35, 35,
  695.  35, 0, 0, 0, 0, 36, 29, 0, 36, 36,
  696.  36, 36, 36, 36, 0, 35, 0, 0, 0, 0,
  697.  0, 0, 0, 0, 0, 0, 0, 0, 36, 0,
  698.  0, 16, 0, 35, 35, 0, 16, 0, 0, 0,
  699.  0, 35, 35, 35, 35, 35, 36, 36, 35, 35,
  700.  35, 35, 35, 0, 36, 36, 36, 36, 36, 0,
  701.  0, 36, 36, 36, 36, 36, 0, 0, 0, 0,
  702.  16, 0, 0, 0, 28, 0, 0, 28, 0, 100,
  703.  16, 0, 28, 112, 110, 16, 109, 0, 111, 0,
  704.  0, 0, 99, 102, 103, 106, 107, 28, 0, 0,
  705.  0, 105, 108, 104, 0, 0, 0, 0, 0, 0,
  706.  0, 0, 0, 0, 0, 28, 28, 16, 0, 0,
  707.  0, 0, 0, 28, 28, 28, 28, 28, 0, 0,
  708.  28, 28, 28, 28, 28, 113, 16, 2, 0, 0,
  709.  29, 16, 0, 29, 0, 0, 0, 0, 29, 0,
  710.  102, 103, 106, 107, 0, 0, 148, 149, 150, 151,
  711.  0, 0, 0, 29, 0, 101, 16, 0, 19, 20,
  712.  21, 22, 23, 24, 0, 0, 0, 0, 0, 0,
  713.  0, 29, 29, 0, 0, 0, 0, 0, 0, 29,
  714.  29, 29, 29, 29, 0, 0, 29, 29, 29, 29,
  715.  29, 16, 16, 16, 16, 0, 0, 0, 0, 0,
  716.  0, 0, 0, 0, 0, 0, 16, 16, 16, 16,
  717.  0, 6, 16, 0, 16, 14, 7, 0, 16, 16,
  718.  16, 0, 16, 16, 16, 16, 16, 16, 0, 16,
  719.  16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
  720.  16, 16, 0, 0, 0, 0, 0, 0, 0, 0,
  721.  0, 14, 14, 16, 16, 16, 16, 0, 0, 0,
  722.  0, 16, 14, 0, 0, 16, 16, 16, 0, 16,
  723.  16, 16, 16, 16, 16, 0, 16, 16, 16, 16,
  724.  16, 16, 16, 16, 16, 294, 0, 16, 16, 16,
  725.  16, 14, 99, 102, 103, 106, 107, 9, 0, 0,
  726.  0, 0, 16, 16, 16, 16, 0, 0, 0, 0,
  727.  16, 97, 0, 0, 16, 16, 16, 0, 16, 16,
  728.  16, 16, 16, 16, 0, 16, 16, 16, 16, 16,
  729.  16, 16, 16, 16, 303, 304, 305, 97, 97, 0,
  730.  316, 0, 0, 16, 16, 16, 16, 0, 0, 0,
  731.  0, 0, 0, 0, 0, 0, 0, 0, 16, 16,
  732.  16, 16, 0, 0, 0, 0, 16, 14, 0, 0,
  733.  16, 16, 16, 0, 16, 16, 16, 16, 16, 16,
  734.  0, 16, 16, 16, 16, 16, 16, 16, 16, 16,
  735.  6, 0, 0, 14, 14, 7, 357, 0, 0, 0,
  736.  0, 0, 0, 0, 0, 0, 0, 0, 0, 8,
  737.  0, 0, 0, 0, 0, 0, 374, 0, 0, 0,
  738.  0, 0, 0, 0, 0, 0, 0, 0, 2, 3,
  739.  4, 5, 0, 0, 0, 395, 0, 6, 0, 0,
  740.  0, 0, 7, 11, 12, 13, 14, 0, 0, 0,
  741.  0, 0, 0, 0, 0, 0, 240, 18, 87, 19,
  742.  20, 21, 22, 23, 24, 0, 25, 26, 27, 28,
  743.  29, 30, 31, 32, 33, 0, 9, 0, 0, 0,
  744.  0, 0, 0, 294, 442, 459, 0, 0, 0, 0,
  745.  7, 0, 0, 0, 0, 0, 0, 0, 448, 0,
  746.  0, 0, 452, 0, 516, 0, 0, 294, 0, 0,
  747.  0, 0, 0, 0, 0, 294, 294, 294, 294, 294,
  748.  0, 0, 0, 9, 0, 0, 0, 0, 0, 0,
  749.  0, 0, 290, 294, 294, 0, 294, 290, 0, 0,
  750.  0, 0, 0, 294, 294, 0, 0, 0, 0, 0,
  751.  0, 290, 0, 0, 0, 0, 0, 0, 0, 0,
  752.  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  753.  503, 9, 0, 0, 0, 0, 0, 511, 0, 0,
  754.  226, 0, 0, 0, 0, 226, 0, 0, 0, 0,
  755.  0, 0, 0, 0, 520, 0, 0, 0, 522, 226,
  756.  0, 0, 0, 0, 0, 0, 1, 2, 3, 4,
  757.  5, 0, 0, 0, 0, 0, 0, 0, 290, 0,
  758.  0, 10, 11, 12, 13, 14, 0, 0, 0, 0,
  759.  15, 0, 0, 0, 16, 17, 18, 0, 19, 20,
  760.  21, 22, 23, 24, 0, 25, 26, 27, 28, 29,
  761.  30, 31, 32, 33, 2, 3, 4, 5, 0, 0,
  762.  0, 0, 0, 0, 0, 0, 226, 0, 0, 11,
  763.  12, 13, 14, 0, 0, 0, 0, 15, 0, 0,
  764.  0, 16, 17, 18, 87, 19, 20, 21, 22, 23,
  765.  24, 0, 25, 26, 27, 28, 29, 30, 31, 32,
  766.  33, 0, 2, 3, 4, 5, 0, 0, 0, 0,
  767.  16, 0, 0, 0, 0, 16, 0, 11, 12, 13,
  768.  14, 0, 0, 0, 0, 15, 0, 0, 0, 16,
  769.  17, 18, 460, 19, 20, 21, 22, 23, 24, 0,
  770.  25, 26, 27, 28, 29, 30, 31, 32, 33, 290,
  771.  290, 290, 290, 0, 0, 0, 0, 0, 0, 0,
  772.  0, 0, 0, 0, 290, 290, 290, 290, 0, 0,
  773.  0, 0, 290, 290, 0, 0, 290, 290, 290, 0,
  774.  290, 290, 290, 290, 290, 290, 0, 290, 290, 290,
  775.  290, 290, 290, 290, 290, 290, 16, 226, 226, 226,
  776.  226, 0, 0, 16, 0, 0, 0, 0, 16, 0,
  777.  0, 0, 226, 226, 226, 226, 0, 0, 0, 0,
  778.  226, 226, 14, 0, 226, 226, 226, 0, 226, 226,
  779.  226, 226, 226, 226, 0, 226, 226, 226, 226, 226,
  780.  226, 226, 226, 226, 0, 0, 0, 0, 0, 100,
  781.  6, 0, 0, 112, 110, 7, 109, 0, 111, 0,
  782.  0, 0, 0, 0, 0, 0, 0, 0, 0, 240,
  783.  0, 105, 108, 104, 0, 0, 0, 0, 0, 0,
  784.  0, 0, 0, 0, 0, 0, 0, 0, 0, 16,
  785.  0, 0, 0, 0, 0, 0, 0, 6, 0, 0,
  786.  0, 0, 7, 0, 0, 113, 0, 0, 0, 0,
  787.  0, 0, 0, 0, 0, 0, 516, 0, 0, 0,
  788.  0, 0, 0, 0, 0, 0, 0, 16, 16, 16,
  789.  16, 0, 0, 0, 0, 101, 9, 0, 0, 0,
  790.  0, 0, 16, 16, 16, 16, 0, 300, 0, 0,
  791.  16, 14, 300, 0, 16, 16, 16, 0, 16, 16,
  792.  16, 16, 16, 16, 0, 16, 16, 16, 16, 16,
  793.  16, 16, 16, 16, 0, 0, 0, 0, 0, 0,
  794.  0, 0, 0, 9, 0, 0, 0, 0, 0, 0,
  795.  0, 0, 0, 0, 16, 0, 0, 0, 0, 16,
  796.  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  797.  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  798.  16, 16, 16, 16, 0, 0, 0, 0, 0, 0,
  799.  0, 0, 0, 300, 0, 16, 16, 16, 16, 0,
  800.  0, 6, 0, 16, 14, 0, 7, 16, 16, 16,
  801.  0, 16, 16, 16, 16, 16, 16, 0, 16, 16,
  802.  16, 16, 16, 16, 16, 16, 16, 2, 3, 4,
  803.  5, 0, 99, 102, 103, 106, 107, 165, 0, 0,
  804.  16, 0, 11, 12, 13, 14, 0, 0, 6, 0,
  805.  15, 0, 0, 7, 16, 17, 18, 0, 19, 20,
  806.  21, 22, 23, 24, 0, 25, 26, 27, 28, 29,
  807.  30, 31, 32, 33, 2, 3, 4, 5, 0, 0,
  808.  0, 0, 0, 0, 0, 0, 0, 9, 0, 11,
  809.  12, 13, 14, 0, 0, 459, 0, 15, 0, 0,
  810.  7, 16, 17, 18, 0, 19, 20, 21, 22, 23,
  811.  24, 0, 25, 26, 27, 28, 29, 30, 31, 32,
  812.  33, 0, 0, 0, 300, 300, 300, 300, 0, 0,
  813.  0, 386, 0, 0, 9, 0, 0, 0, 0, 300,
  814.  300, 300, 300, 0, 6, 0, 0, 300, 300, 7,
  815.  0, 300, 300, 300, 0, 300, 300, 300, 300, 300,
  816.  300, 0, 300, 300, 300, 300, 300, 300, 300, 300,
  817.  300, 16, 16, 16, 16, 0, 0, 0, 0, 0,
  818.  0, 9, 0, 0, 0, 0, 16, 16, 16, 16,
  819.  0, 6, 0, 0, 16, 100, 7, 0, 16, 16,
  820.  16, 0, 16, 16, 16, 16, 16, 16, 0, 16,
  821.  16, 16, 16, 16, 16, 16, 16, 16, 2, 3,
  822.  4, 5, 0, 0, 0, 0, 0, 0, 0, 0,
  823.  9, 0, 0, 11, 12, 13, 14, 0, 6, 0,
  824.  0, 15, 0, 0, 0, 16, 17, 18, 0, 19,
  825.  20, 21, 22, 23, 24, 0, 25, 26, 27, 28,
  826.  29, 30, 31, 32, 33, 2, 3, 4, 5, 0,
  827.  0, 0, 0, 0, 0, 0, 0, 9, 0, 0,
  828.  11, 12, 13, 14, 0, 137, 0, 0, 0, 0,
  829.  0, 0, 0, 0, 18, 0, 19, 20, 21, 22,
  830.  23, 24, 0, 25, 26, 27, 28, 29, 30, 31,
  831.  32, 33, 2, 3, 4, 5, 0, 0, 0, 0,
  832.  0, 0, 0, 0, 0, 0, 0, 11, 12, 13,
  833.  14, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  834.  0, 18, 460, 19, 20, 21, 22, 23, 24, 0,
  835.  25, 26, 27, 28, 29, 30, 31, 32, 33, 0,
  836.  0, 2, 3, 4, 5, 0, 0, 0, 0, 0,
  837.  0, 0, 0, 0, 0, 0, 11, 12, 13, 14,
  838.  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  839.  18, 0, 19, 20, 21, 22, 23, 24, 0, 25,
  840.  26, 27, 28, 29, 30, 31, 32, 33, 2, 190,
  841.  4, 5, 0, 0, 0, 0, 0, 0, 0, 0,
  842.  0, 0, 0, 11, 12, 13, 14, 0, 0, 0,
  843.  0, 0, 0, 0, 0, 0, 0, 18, 0, 19,
  844.  20, 21, 22, 23, 24, 0, 25, 26, 27, 28,
  845.  29, 30, 31, 32, 33, 2, 0, 4, 5, 0,
  846.  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  847.  11, 12, 13, 14, 0, 0, 0, 0, 0, 0,
  848.  0, 0, 0, 0, 18, 0, 19, 20, 21, 22,
  849.  23, 24, 0, 25, 26, 27, 28, 29, 30, 31,
  850.  32, 33, 2, 42, 4, 5, 42, 42, 42, 42,
  851.  0, 0, 42, 0, 0, 0, 0, 11, 12, 13,
  852.  14, 0, 0, 0, 42, 42, 42, 42, 0, 0,
  853.  0, 18, 0, 19, 20, 21, 22, 23, 24, 0,
  854.  25, 26, 27, 28, 29, 30, 31, 32, 33, 0,
  855.  0, 0, 0, 0, 0, 0, 0, 100, 42, 42,
  856.  120, 112, 110, 513, 109, 0, 111, 0, 100, 0,
  857.  0, 120, 112, 110, 0, 109, 0, 111, 0, 105,
  858.  108, 104, 0, 0, 0, 0, 0, 0, 0, 42,
  859.  105, 108, 104, 100, 0, 0, 244, 112, 110, 0,
  860.  109, 0, 111, 100, 0, 0, 245, 112, 110, 0,
  861.  109, 0, 111, 113, 0, 105, 108, 104, 0, 0,
  862.  0, 0, 0, 0, 113, 105, 108, 104, 100, 0,
  863.  0, 246, 112, 110, 0, 109, 0, 111, 0, 0,
  864.  0, 0, 0, 101, 0, 0, 0, 0, 0, 113,
  865.  105, 108, 104, 100, 101, 0, 302, 112, 110, 113,
  866.  109, 0, 111, 100, 0, 0, 0, 112, 110, 254,
  867.  109, 0, 111, 0, 0, 105, 108, 104, 0, 101,
  868.  0, 0, 0, 0, 113, 105, 108, 104, 100, 101,
  869.  0, 0, 112, 110, 318, 109, 0, 111, 0, 100,
  870.  0, 0, 0, 112, 110, 424, 109, 0, 111, 113,
  871.  105, 108, 104, 0, 101, 0, 0, 0, 0, 113,
  872.  0, 105, 108, 104, 0, 0, 42, 42, 42, 42,
  873.  42, 0, 0, 0, 0, 0, 0, 0, 0, 101,
  874.  0, 0, 0, 0, 113, 0, 42, 100, 0, 101,
  875.  504, 112, 110, 100, 109, 113, 111, 112, 110, 0,
  876.  109, 0, 111, 0, 0, 0, 0, 0, 0, 105,
  877.  108, 104, 0, 0, 101, 105, 108, 104, 0, 0,
  878.  99, 102, 103, 106, 107, 101, 0, 0, 0, 0,
  879.  0, 99, 102, 103, 106, 107, 0, 0, 0, 0,
  880.  0, 0, 0, 113, 0, 0, 0, 0, 0, 113,
  881.  0, 0, 0, 0, 0, 0, 99, 102, 103, 106,
  882.  107, 0, 0, 0, 0, 0, 99, 102, 103, 106,
  883.  107, 0, 0, 101, 0, 0, 0, 0, 0, 101,
  884.  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  885.  0, 99, 102, 103, 106, 107, 0, 0, 0, 0,
  886.  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  887.  0, 0, 0, 0, 0, 0, 99, 102, 103, 106,
  888.  107, 0, 0, 0, 0, 0, 99, 102, 103, 106,
  889.  107, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  890.  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  891.  0, 99, 102, 103, 106, 107, 0, 0, 0, 0,
  892.  0, 0, 99, 102, 103, 106, 107, 0, 0, 0,
  893.  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  894.  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  895.  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  896.  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  897.  99, 102, 103, 106, 107, 0, 99, 102, 103, 106,
  898.  107,
  899. };
  900. short yycheck[] =
  901. {162,
  902.  0, 329, 41, 41, 41, 41, 6, 294, 44, 159,
  903.  260, 259, 59, 41, 59, 61, 44, 59, 13, 14,
  904.  59, 59, 78, 330, 116, 59, 26, 16, 59, 59,
  905.  14, 59, 299, 61, 38, 42, 302, 42, 42, 43,
  906.  47, 45, 44, 47, 257, 42, 43, 40, 45, 257,
  907.  47, 257, 258, 46, 93, 93, 60, 61, 62, 240,
  908.  41, 41, 41, 44, 526, 44, 41, 469, 44, 44,
  909.  46, 533, 372, 475, 381, 288, 376, 539, 59, 59,
  910.  288, 348, 288, 72, 72, 74, 74, 94, 41, 78,
  911.  94, 44, 92, 93, 94, 84, 424, 94, 91, 99,
  912.  100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
  913.  110, 111, 112, 113, 41, 115, 116, 173, 299, 521,
  914.  124, 213, 370, 125, 281, 432, 40, 122, 117, 124,
  915.  125, 398, 137, 399, 297, 41, 141, 294, 44, 128,
  916.  124, 125, 131, 132, 144, 134, 258, 40, 0, 257,
  917.  258, 40, 208, 46, 441, 41, 40, 146, 44, 148,
  918.  149, 150, 254, 40, 0, 465, 201, 59, 168, 41,
  919.  257, 516, 44, 473, 174, 61, 41, 212, 328, 44,
  920.  288, 526, 93, 172, 173, 513, 44, 299, 300, 282,
  921.  190, 41, 44, 286, 41, 288, 41, 44, 91, 44,
  922.  41, 201, 289, 44, 291, 292, 293, 59, 44, 41,
  923.  282, 286, 212, 213, 286, 215, 288, 206, 267, 208,
  924.  281, 266, 258, 59, 271, 214, 318, 227, 257, 266,
  925.  257, 518, 221, 396, 0, 61, 281, 293, 281, 281,
  926.  240, 230, 281, 281, 304, 305, 306, 281, 307, 308,
  927.  281, 281, 266, 281, 254, 311, 40, 261, 262, 263,
  928.  264, 265, 41, 299, 300, 44, 312, 313, 257, 258,
  929.  259, 40, 272, 309, 265, 41, 267, 266, 44, 307,
  930.  308, 40, 310, 258, 312, 313, 40, 343, 288, 317,
  931.  318, 40, 282, 59, 317, 318, 286, 0, 288, 299,
  932.  278, 279, 291, 44, 293, 258, 41, 307, 308, 309,
  933.  314, 315, 316, 313, 314, 315, 316, 61, 318, 41,
  934.  44, 41, 311, 41, 299, 300, 44, 93, 296, 329,
  935.  493, 258, 332, 281, 390, 38, 94, 40, 41, 42,
  936.  43, 44, 45, 46, 47, 41, 299, 300, 277, 278,
  937.  279, 93, 258, 0, 343, 40, 59, 60, 61, 62,
  938.  61, 44, 44, 526, 44, 44, 422, 0, 61, 279,
  939.  533, 44, 299, 300, 281, 266, 539, 433, 470, 41,
  940.  41, 370, 59, 372, 440, 44, 258, 376, 91, 59,
  941.  93, 94, 59, 299, 300, 0, 59, 386, 281, 40,
  942.  281, 390, 258, 309, 41, 257, 41, 93, 258, 291,
  943.  466, 258, 59, 413, 414, 415, 416, 281, 418, 281,
  944.  44, 124, 41, 59, 424, 59, 59, 299, 300, 281,
  945.  298, 300, 299, 422, 41, 41, 288, 289, 290, 291,
  946.  292, 293, 59, 281, 433, 281, 446, 266, 41, 299,
  947.  300, 440, 299, 300, 59, 307, 308, 457, 310, 459,
  948.  449, 281, 309, 0, 59, 317, 318, 294, 44, 41,
  949.  470, 307, 308, 40, 310, 40, 465, 466, 59, 258,
  950.  309, 317, 318, 293, 473, 44, 288, 125, 477, 478,
  951.  44, 266, 258, 281, 281, 310, 281, 297, 59, 266,
  952.  266, 38, 267, 40, 41, 42, 43, 44, 45, 46,
  953.  47, 41, 301, 513, 41, 281, 516, 281, 507, 59,
  954.  299, 300, 59, 60, 61, 62, 526, 303, 302, 0,
  955.  309, 41, 266, 299, 300, 93, 41, 93, 258, 41,
  956.  258, 307, 308, 309, 310, 311, 41, 41, 314, 315,
  957.  316, 317, 318, 281, 91, 258, 93, 94, 261, 262,
  958.  263, 264, 265, 266, 61, 41, 41, 38, 281, 40,
  959.  41, 42, 43, 44, 45, 46, 47, 281, 281, 299,
  960.  300, 299, 300, 41, 258, 259, 260, 124, 59, 60,
  961.  61, 62, 41, 257, 41, 0, 299, 300, 272, 273,
  962.  274, 275, 41, 281, 307, 308, 309, 310, 311, 312,
  963.  313, 314, 315, 316, 317, 318, 281, 41, 41, 0,
  964.  91, 59, 93, 94, 288, 289, 290, 291, 292, 293,
  965.  59, 41, 281, 38, 281, 40, 41, 42, 43, 44,
  966.  45, 46, 47, 41, 41, 41, 41, 125, 281, 281,
  967.  294, 281, 41, 124, 59, 60, 61, 62, 281, 125,
  968.  307, 308, 41, 310, 281, 281, 281, 281, 41, 0,
  969.  317, 318, 0, 396, 307, 308, 281, 310, 59, 79,
  970.  281, 204, 40, 60, 317, 318, 91, 122, 93, 94,
  971.  307, 308, 0, 310, 125, 520, 451, 460, 311, 432,
  972.  317, 318, 307, 308, 146, 310, 307, 308, 320, 310,
  973.  71, 266, 317, 318, 325, 466, 317, 318, 230, 124,
  974.  281, 258, 230, 283, 261, 262, 263, 264, 265, 266,
  975.  38, 284, 40, 41, 42, 43, 44, 45, 46, 47,
  976.  291, 152, 286, 337, 281, 208, 307, 308, 141, 310,
  977.  440, 59, 60, 61, 62, 276, 317, 318, 0, 478,
  978.  477, -1, 299, 300, -1, -1, -1, -1, -1, -1,
  979.  307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
  980.  317, 318, -1, 91, -1, 93, 94, 258, -1, -1,
  981.  261, 262, 263, 264, 265, 266, 38, -1, 40, 41,
  982.  42, 43, 44, 45, 46, 47, -1, -1, -1, -1,
  983.  281, -1, -1, -1, -1, -1, 124, 59, 60, 61,
  984.  62, -1, -1, -1, 0, -1, -1, -1, 299, 300,
  985.  -1, -1, -1, -1, -1, -1, 307, 308, 309, 310,
  986.  311, 312, 313, 314, 315, 316, 317, 318, -1, 91,
  987.  -1, 93, 94, 258, -1, -1, 261, 262, 263, 264,
  988.  265, 266, 38, -1, 40, 41, 42, 43, 44, 45,
  989.  46, 47, -1, -1, -1, -1, 281, -1, -1, -1,
  990.  -1, -1, 124, 59, 60, 61, 62, -1, -1, -1,
  991.  -1, -1, -1, -1, 299, 300, -1, -1, -1, 257,
  992.  281, -1, 307, 308, 309, 310, 311, 312, 313, 314,
  993.  315, 316, 317, 318, 44, 91, -1, 93, 94, -1,
  994.  -1, 0, -1, -1, -1, 283, 307, 308, -1, 310,
  995.  288, 289, 290, 291, 292, 293, 317, 318, -1, -1,
  996.  -1, -1, -1, -1, -1, -1, -1, -1, 124, 281,
  997.  258, -1, -1, 261, 262, 263, 264, 265, 266, 38,
  998.  -1, 40, 41, 42, 43, 44, 45, 46, 47, -1,
  999.  -1, -1, -1, 281, -1, 307, 308, -1, 310, -1,
  1000.  59, 60, 61, 62, -1, 317, 318, 0, -1, -1,
  1001.  -1, 299, 300, -1, -1, -1, -1, -1, -1, 307,
  1002.  308, 309, 310, 311, 312, 313, 314, 315, 316, 317,
  1003.  318, -1, 91, -1, 93, 94, 258, -1, -1, 261,
  1004.  262, 263, 264, 265, 266, 38, -1, 40, 41, 42,
  1005.  43, 44, 45, 46, 47, -1, -1, -1, -1, 281,
  1006.  -1, -1, -1, -1, -1, 124, 59, 60, 61, 62,
  1007.  -1, -1, -1, 0, -1, -1, -1, 299, 300, -1,
  1008.  -1, -1, -1, -1, -1, 307, 308, 309, 310, 311,
  1009.  312, 313, 314, 315, 316, 317, 318, -1, 91, -1,
  1010.  93, 94, 258, -1, -1, 261, 262, 263, 264, 265,
  1011.  266, 38, -1, 40, 41, 42, 43, 44, 45, 46,
  1012.  47, -1, -1, -1, -1, 281, -1, -1, -1, -1,
  1013.  -1, 124, 59, 60, 61, 62, -1, -1, -1, -1,
  1014.  -1, 257, 258, 299, 300, -1, -1, 257, 258, -1,
  1015.  -1, 307, 308, 309, 310, 311, 312, 313, 314, 315,
  1016.  316, 317, 318, 279, 91, -1, 93, 94, -1, 279,
  1017.  0, 59, 288, 289, 290, 291, 292, 293, 288, 289,
  1018.  290, 291, 292, 293, -1, -1, -1, -1, -1, -1,
  1019.  -1, -1, 257, -1, -1, -1, -1, 124, -1, 258,
  1020.  -1, -1, 261, 262, 263, 264, 265, 266, 38, -1,
  1021.  40, 41, 42, 43, 44, 45, 46, 47, -1, -1,
  1022.  -1, -1, 281, 288, 289, 290, 291, 292, 293, 59,
  1023.  60, 61, 62, -1, -1, -1, 0, -1, -1, -1,
  1024.  299, 300, -1, -1, -1, -1, -1, -1, 307, 308,
  1025.  309, 310, 311, 312, 313, 314, 315, 316, 317, 318,
  1026.  -1, 91, -1, 93, 94, 258, -1, -1, 261, 262,
  1027.  263, 264, 265, 266, 38, -1, -1, 41, 42, 43,
  1028.  44, 45, -1, 47, -1, -1, -1, -1, 281, -1,
  1029.  -1, -1, -1, -1, 124, 59, 60, 61, 62, -1,
  1030.  -1, -1, 0, -1, -1, -1, 299, 300, -1, -1,
  1031.  -1, -1, -1, -1, 307, 308, 309, 310, 311, 312,
  1032.  313, 314, 315, 316, 317, 318, -1, -1, -1, 93,
  1033.  94, 258, -1, -1, 261, 262, 263, 264, 265, 266,
  1034.  38, -1, -1, 41, 42, 43, 44, 45, -1, 47,
  1035.  -1, -1, -1, -1, 281, -1, 41, -1, -1, 44,
  1036.  124, 59, 60, 61, 62, -1, -1, -1, -1, 257,
  1037.  -1, -1, -1, 300, 59, -1, 61, 257, -1, -1,
  1038.  307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
  1039.  317, 318, -1, 281, -1, 93, 94, 277, -1, 0,
  1040.  288, 289, 290, -1, 292, 293, -1, -1, 288, 289,
  1041.  290, 291, 292, 293, -1, -1, -1, -1, -1, 307,
  1042.  308, -1, 310, -1, -1, -1, 124, -1, 258, 317,
  1043.  318, 261, 262, 263, 264, 265, 266, 38, -1, -1,
  1044.  41, 42, 43, 44, 45, -1, 47, -1, 38, -1,
  1045.  -1, 281, 42, 43, -1, 45, -1, 47, 59, 60,
  1046.  61, 62, -1, -1, -1, 0, -1, -1, -1, 299,
  1047.  60, 61, 62, -1, -1, -1, -1, 307, 308, 309,
  1048.  310, 311, 312, 313, 314, 315, 316, 317, 318, 59,
  1049.  -1, -1, 93, -1, 258, -1, -1, 261, 262, 263,
  1050.  264, 265, 266, 38, 94, -1, 41, 42, 43, 44,
  1051.  45, -1, 47, -1, -1, -1, -1, 281, -1, 59,
  1052.  -1, -1, -1, 124, 59, 60, 61, 62, -1, -1,
  1053.  -1, 0, -1, -1, 124, 299, 300, -1, -1, -1,
  1054.  -1, -1, -1, 307, 308, 309, 310, 311, -1, -1,
  1055.  314, 315, 316, 317, 318, -1, -1, -1, 93, -1,
  1056.  258, -1, -1, 261, 262, 263, 264, 265, 266, 38,
  1057.  -1, -1, 41, -1, 43, 44, 45, -1, -1, -1,
  1058.  -1, -1, -1, 281, -1, -1, -1, -1, -1, 124,
  1059.  59, 60, 61, 62, -1, -1, 281, -1, -1, -1,
  1060.  -1, 299, 300, -1, -1, -1, 257, 40, 0, 307,
  1061.  308, 309, 310, 311, -1, -1, 314, 315, 316, 317,
  1062.  318, -1, 307, 308, 93, 310, 277, 312, 313, -1,
  1063.  -1, -1, 317, 318, -1, -1, -1, 288, 289, 290,
  1064.  291, 292, 293, -1, 40, -1, 38, -1, -1, 41,
  1065.  -1, 43, 44, 45, -1, 124, -1, 258, -1, -1,
  1066.  261, 262, 263, 264, 265, 266, -1, 59, 60, 61,
  1067.  62, 261, 262, 263, 264, 265, -1, -1, -1, -1,
  1068.  281, 40, -1, -1, -1, -1, -1, -1, -1, -1,
  1069.  -1, -1, -1, -1, -1, 0, -1, -1, 299, 300,
  1070.  -1, 93, -1, -1, -1, -1, 307, 308, 309, 310,
  1071.  311, 281, -1, 314, 315, 316, 317, 318, -1, -1,
  1072.  -1, 311, -1, 258, -1, -1, 261, 262, 263, 264,
  1073.  265, 266, 124, 38, -1, -1, 41, 307, 308, 44,
  1074.  310, 281, -1, -1, -1, -1, 281, 317, 318, -1,
  1075.  -1, -1, -1, -1, 59, 60, 61, 62, -1, -1,
  1076.  -1, 0, -1, -1, 299, 300, -1, 307, 308, -1,
  1077.  310, -1, 307, 308, 309, 310, 311, 317, 318, 314,
  1078.  315, 316, 317, 318, -1, -1, -1, -1, 93, 258,
  1079.  -1, -1, 261, 262, 263, 264, 265, 266, -1, 38,
  1080.  -1, -1, 41, -1, -1, 44, -1, -1, -1, -1,
  1081.  -1, -1, 281, -1, -1, -1, -1, -1, -1, 124,
  1082.  59, 60, 61, 62, 257, -1, -1, -1, -1, -1,
  1083.  299, 300, -1, -1, 59, -1, -1, -1, 307, 308,
  1084.  309, 310, 311, 0, -1, 314, 315, 316, 317, 318,
  1085.  -1, -1, -1, -1, 93, 288, 289, 290, 291, 292,
  1086.  293, 257, -1, -1, -1, -1, 258, -1, -1, 261,
  1087.  262, 263, 264, 265, 266, -1, -1, -1, -1, -1,
  1088.  -1, 38, -1, -1, 41, 124, -1, 44, -1, 281,
  1089.  -1, -1, 288, 289, 290, 291, 292, 293, 257, -1,
  1090.  -1, -1, 59, 60, 61, 62, -1, 299, 300, -1,
  1091.  -1, -1, -1, -1, -1, 307, 308, 309, 310, 311,
  1092.  -1, -1, 314, 315, 316, 317, 318, 0, -1, 288,
  1093.  289, 290, 291, 292, 293, -1, 93, -1, -1, -1,
  1094.  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  1095.  -1, -1, -1, 258, -1, -1, 261, 262, 263, 264,
  1096.  265, 266, -1, -1, -1, 38, -1, 124, 41, -1,
  1097.  -1, 44, -1, -1, -1, -1, 281, -1, -1, -1,
  1098.  -1, -1, -1, -1, -1, -1, 59, 60, 61, 62,
  1099.  -1, -1, -1, 0, 299, 300, -1, -1, -1, -1,
  1100.  -1, -1, 307, 308, 309, 310, 311, -1, -1, 314,
  1101.  315, 316, 317, 318, -1, -1, -1, -1, -1, 258,
  1102.  93, -1, 261, 262, 263, 264, 265, 266, -1, -1,
  1103.  -1, 38, 257, -1, 41, -1, -1, 44, -1, -1,
  1104.  -1, -1, 281, -1, -1, -1, -1, -1, -1, -1,
  1105.  -1, 124, 59, 60, 61, 62, 281, -1, -1, -1,
  1106.  299, 300, -1, 288, 289, 290, 291, 292, 307, 308,
  1107.  309, 310, 311, -1, 0, 314, 315, 316, 317, 318,
  1108.  -1, -1, 307, 308, -1, 310, 93, 0, -1, -1,
  1109.  -1, -1, 317, 318, -1, -1, -1, -1, -1, -1,
  1110.  -1, 258, -1, -1, 261, 262, 263, 264, 265, 266,
  1111.  -1, -1, 38, -1, -1, 41, -1, 124, 44, -1,
  1112.  -1, -1, -1, -1, 281, 38, -1, -1, 41, -1,
  1113.  -1, 44, -1, 59, 60, 61, 62, -1, -1, -1,
  1114.  -1, -1, 299, 300, -1, -1, 59, 60, 61, 62,
  1115.  307, 308, 309, 310, 311, -1, 0, 314, 315, 316,
  1116.  317, 318, -1, -1, -1, -1, -1, 93, -1, -1,
  1117.  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  1118.  93, -1, -1, -1, -1, 258, -1, -1, 261, 262,
  1119.  263, 264, 265, 266, 38, -1, -1, 41, 124, -1,
  1120.  44, -1, -1, -1, -1, -1, -1, -1, 281, 38,
  1121.  -1, 124, -1, 42, 43, 59, 45, -1, 47, -1,
  1122.  -1, -1, 0, -1, -1, -1, 299, 300, -1, -1,
  1123.  59, 60, 61, 62, 307, 308, 309, 310, 311, -1,
  1124.  -1, 314, 315, 316, 317, 318, -1, -1, -1, 93,
  1125.  -1, 258, -1, -1, 261, 262, 263, 264, 265, 266,
  1126.  38, -1, -1, 41, -1, 94, 44, -1, -1, -1,
  1127.  42, 43, -1, 45, 281, 47, -1, -1, -1, -1,
  1128.  124, 59, -1, -1, -1, -1, -1, -1, 60, 61,
  1129.  62, -1, 299, 300, -1, 124, -1, -1, -1, -1,
  1130.  307, 308, 309, 310, 311, -1, -1, 314, 315, 316,
  1131.  317, 318, -1, -1, -1, 93, -1, -1, -1, -1,
  1132.  -1, -1, 94, -1, 40, -1, -1, -1, -1, 45,
  1133.  -1, -1, 258, -1, -1, 261, 262, 263, 264, 265,
  1134.  266, -1, -1, -1, -1, 258, 124, -1, 261, 262,
  1135.  263, 264, 265, 266, -1, 281, -1, -1, -1, -1,
  1136.  -1, -1, -1, -1, -1, -1, -1, -1, 281, -1,
  1137.  -1, 40, -1, 299, 300, -1, 45, -1, -1, -1,
  1138.  -1, 307, 308, 309, 310, 311, 299, 300, 314, 315,
  1139.  316, 317, 318, -1, 307, 308, 309, 310, 311, -1,
  1140.  -1, 314, 315, 316, 317, 318, -1, -1, -1, -1,
  1141.  126, -1, -1, -1, 258, -1, -1, 261, -1, 38,
  1142.  40, -1, 266, 42, 43, 45, 45, -1, 47, -1,
  1143.  -1, -1, 261, 262, 263, 264, 265, 281, -1, -1,
  1144.  -1, 60, 61, 62, -1, -1, -1, -1, -1, -1,
  1145.  -1, -1, -1, -1, -1, 299, 300, 126, -1, -1,
  1146.  -1, -1, -1, 307, 308, 309, 310, 311, -1, -1,
  1147.  314, 315, 316, 317, 318, 94, 40, 257, -1, -1,
  1148.  258, 45, -1, 261, -1, -1, -1, -1, 266, -1,
  1149.  262, 263, 264, 265, -1, -1, 276, 277, 278, 279,
  1150.  -1, -1, -1, 281, -1, 124, 126, -1, 288, 289,
  1151.  290, 291, 292, 293, -1, -1, -1, -1, -1, -1,
  1152.  -1, 299, 300, -1, -1, -1, -1, -1, -1, 307,
  1153.  308, 309, 310, 311, -1, -1, 314, 315, 316, 317,
  1154.  318, 257, 258, 259, 260, -1, -1, -1, -1, -1,
  1155.  -1, -1, -1, -1, -1, -1, 272, 273, 274, 275,
  1156.  -1, 40, 126, -1, 280, 281, 45, -1, 284, 285,
  1157.  286, -1, 288, 289, 290, 291, 292, 293, -1, 295,
  1158.  296, 297, 298, 299, 300, 301, 302, 303, 257, 258,
  1159.  259, 260, -1, -1, -1, -1, -1, -1, -1, -1,
  1160.  -1, 317, 318, 272, 273, 274, 275, -1, -1, -1,
  1161.  -1, 280, 281, -1, -1, 284, 285, 286, -1, 288,
  1162.  289, 290, 291, 292, 293, -1, 295, 296, 297, 298,
  1163.  299, 300, 301, 302, 303, 59, -1, 257, 258, 259,
  1164.  260, 310, 261, 262, 263, 264, 265, 126, -1, -1,
  1165.  -1, -1, 272, 273, 274, 275, -1, -1, -1, -1,
  1166.  280, 281, -1, -1, 284, 285, 286, -1, 288, 289,
  1167.  290, 291, 292, 293, -1, 295, 296, 297, 298, 299,
  1168.  300, 301, 302, 303, 244, 245, 246, 307, 308, -1,
  1169.  309, -1, -1, 257, 258, 259, 260, -1, -1, -1,
  1170.  -1, -1, -1, -1, -1, -1, -1, -1, 272, 273,
  1171.  274, 275, -1, -1, -1, -1, 280, 281, -1, -1,
  1172.  284, 285, 286, -1, 288, 289, 290, 291, 292, 293,
  1173.  -1, 295, 296, 297, 298, 299, 300, 301, 302, 303,
  1174.  40, -1, -1, 307, 308, 45, 306, -1, -1, -1,
  1175.  -1, -1, -1, -1, -1, -1, -1, -1, -1, 59,
  1176.  -1, -1, -1, -1, -1, -1, 326, -1, -1, -1,
  1177.  -1, -1, -1, -1, -1, -1, -1, -1, 257, 258,
  1178.  259, 260, -1, -1, -1, 345, -1, 40, -1, -1,
  1179.  -1, -1, 45, 272, 273, 274, 275, -1, -1, -1,
  1180.  -1, -1, -1, -1, -1, -1, 59, 286, 287, 288,
  1181.  289, 290, 291, 292, 293, -1, 295, 296, 297, 298,
  1182.  299, 300, 301, 302, 303, -1, 126, -1, -1, -1,
  1183.  -1, -1, -1, 257, 394, 40, -1, -1, -1, -1,
  1184.  45, -1, -1, -1, -1, -1, -1, -1, 408, -1,
  1185.  -1, -1, 412, -1, 59, -1, -1, 281, -1, -1,
  1186.  -1, -1, -1, -1, -1, 289, 290, 291, 292, 293,
  1187.  -1, -1, -1, 126, -1, -1, -1, -1, -1, -1,
  1188.  -1, -1, 40, 307, 308, -1, 310, 45, -1, -1,
  1189.  -1, -1, -1, 317, 318, -1, -1, -1, -1, -1,
  1190.  -1, 59, -1, -1, -1, -1, -1, -1, -1, -1,
  1191.  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  1192.  480, 126, -1, -1, -1, -1, -1, 487, -1, -1,
  1193.  40, -1, -1, -1, -1, 45, -1, -1, -1, -1,
  1194.  -1, -1, -1, -1, 504, -1, -1, -1, 508, 59,
  1195.  -1, -1, -1, -1, -1, -1, 256, 257, 258, 259,
  1196.  260, -1, -1, -1, -1, -1, -1, -1, 126, -1,
  1197.  -1, 271, 272, 273, 274, 275, -1, -1, -1, -1,
  1198.  280, -1, -1, -1, 284, 285, 286, -1, 288, 289,
  1199.  290, 291, 292, 293, -1, 295, 296, 297, 298, 299,
  1200.  300, 301, 302, 303, 257, 258, 259, 260, -1, -1,
  1201.  -1, -1, -1, -1, -1, -1, 126, -1, -1, 272,
  1202.  273, 274, 275, -1, -1, -1, -1, 280, -1, -1,
  1203.  -1, 284, 285, 286, 287, 288, 289, 290, 291, 292,
  1204.  293, -1, 295, 296, 297, 298, 299, 300, 301, 302,
  1205.  303, -1, 257, 258, 259, 260, -1, -1, -1, -1,
  1206.  40, -1, -1, -1, -1, 45, -1, 272, 273, 274,
  1207.  275, -1, -1, -1, -1, 280, -1, -1, -1, 284,
  1208.  285, 286, 287, 288, 289, 290, 291, 292, 293, -1,
  1209.  295, 296, 297, 298, 299, 300, 301, 302, 303, 257,
  1210.  258, 259, 260, -1, -1, -1, -1, -1, -1, -1,
  1211.  -1, -1, -1, -1, 272, 273, 274, 275, -1, -1,
  1212.  -1, -1, 280, 281, -1, -1, 284, 285, 286, -1,
  1213.  288, 289, 290, 291, 292, 293, -1, 295, 296, 297,
  1214.  298, 299, 300, 301, 302, 303, 126, 257, 258, 259,
  1215.  260, -1, -1, 40, -1, -1, -1, -1, 45, -1,
  1216.  -1, -1, 272, 273, 274, 275, -1, -1, -1, -1,
  1217.  280, 281, 59, -1, 284, 285, 286, -1, 288, 289,
  1218.  290, 291, 292, 293, -1, 295, 296, 297, 298, 299,
  1219.  300, 301, 302, 303, -1, -1, -1, -1, -1, 38,
  1220.  40, -1, -1, 42, 43, 45, 45, -1, 47, -1,
  1221.  -1, -1, -1, -1, -1, -1, -1, -1, -1, 59,
  1222.  -1, 60, 61, 62, -1, -1, -1, -1, -1, -1,
  1223.  -1, -1, -1, -1, -1, -1, -1, -1, -1, 126,
  1224.  -1, -1, -1, -1, -1, -1, -1, 40, -1, -1,
  1225.  -1, -1, 45, -1, -1, 94, -1, -1, -1, -1,
  1226.  -1, -1, -1, -1, -1, -1, 59, -1, -1, -1,
  1227.  -1, -1, -1, -1, -1, -1, -1, 257, 258, 259,
  1228.  260, -1, -1, -1, -1, 124, 126, -1, -1, -1,
  1229.  -1, -1, 272, 273, 274, 275, -1, 40, -1, -1,
  1230.  280, 281, 45, -1, 284, 285, 286, -1, 288, 289,
  1231.  290, 291, 292, 293, -1, 295, 296, 297, 298, 299,
  1232.  300, 301, 302, 303, -1, -1, -1, -1, -1, -1,
  1233.  -1, -1, -1, 126, -1, -1, -1, -1, -1, -1,
  1234.  -1, -1, -1, -1, 40, -1, -1, -1, -1, 45,
  1235.  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  1236.  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  1237.  257, 258, 259, 260, -1, -1, -1, -1, -1, -1,
  1238.  -1, -1, -1, 126, -1, 272, 273, 274, 275, -1,
  1239.  -1, 40, -1, 280, 281, -1, 45, 284, 285, 286,
  1240.  -1, 288, 289, 290, 291, 292, 293, -1, 295, 296,
  1241.  297, 298, 299, 300, 301, 302, 303, 257, 258, 259,
  1242.  260, -1, 261, 262, 263, 264, 265, 266, -1, -1,
  1243.  126, -1, 272, 273, 274, 275, -1, -1, 40, -1,
  1244.  280, -1, -1, 45, 284, 285, 286, -1, 288, 289,
  1245.  290, 291, 292, 293, -1, 295, 296, 297, 298, 299,
  1246.  300, 301, 302, 303, 257, 258, 259, 260, -1, -1,
  1247.  -1, -1, -1, -1, -1, -1, -1, 126, -1, 272,
  1248.  273, 274, 275, -1, -1, 40, -1, 280, -1, -1,
  1249.  45, 284, 285, 286, -1, 288, 289, 290, 291, 292,
  1250.  293, -1, 295, 296, 297, 298, 299, 300, 301, 302,
  1251.  303, -1, -1, -1, 257, 258, 259, 260, -1, -1,
  1252.  -1, 123, -1, -1, 126, -1, -1, -1, -1, 272,
  1253.  273, 274, 275, -1, 40, -1, -1, 280, 281, 45,
  1254.  -1, 284, 285, 286, -1, 288, 289, 290, 291, 292,
  1255.  293, -1, 295, 296, 297, 298, 299, 300, 301, 302,
  1256.  303, 257, 258, 259, 260, -1, -1, -1, -1, -1,
  1257.  -1, 126, -1, -1, -1, -1, 272, 273, 274, 275,
  1258.  -1, 40, -1, -1, 280, 281, 45, -1, 284, 285,
  1259.  286, -1, 288, 289, 290, 291, 292, 293, -1, 295,
  1260.  296, 297, 298, 299, 300, 301, 302, 303, 257, 258,
  1261.  259, 260, -1, -1, -1, -1, -1, -1, -1, -1,
  1262.  126, -1, -1, 272, 273, 274, 275, -1, 40, -1,
  1263.  -1, 280, -1, -1, -1, 284, 285, 286, -1, 288,
  1264.  289, 290, 291, 292, 293, -1, 295, 296, 297, 298,
  1265.  299, 300, 301, 302, 303, 257, 258, 259, 260, -1,
  1266.  -1, -1, -1, -1, -1, -1, -1, 126, -1, -1,
  1267.  272, 273, 274, 275, -1, 40, -1, -1, -1, -1,
  1268.  -1, -1, -1, -1, 286, -1, 288, 289, 290, 291,
  1269.  292, 293, -1, 295, 296, 297, 298, 299, 300, 301,
  1270.  302, 303, 257, 258, 259, 260, -1, -1, -1, -1,
  1271.  -1, -1, -1, -1, -1, -1, -1, 272, 273, 274,
  1272.  275, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  1273.  -1, 286, 287, 288, 289, 290, 291, 292, 293, -1,
  1274.  295, 296, 297, 298, 299, 300, 301, 302, 303, -1,
  1275.  -1, 257, 258, 259, 260, -1, -1, -1, -1, -1,
  1276.  -1, -1, -1, -1, -1, -1, 272, 273, 274, 275,
  1277.  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  1278.  286, -1, 288, 289, 290, 291, 292, 293, -1, 295,
  1279.  296, 297, 298, 299, 300, 301, 302, 303, 257, 258,
  1280.  259, 260, -1, -1, -1, -1, -1, -1, -1, -1,
  1281.  -1, -1, -1, 272, 273, 274, 275, -1, -1, -1,
  1282.  -1, -1, -1, -1, -1, -1, -1, 286, -1, 288,
  1283.  289, 290, 291, 292, 293, -1, 295, 296, 297, 298,
  1284.  299, 300, 301, 302, 303, 257, -1, 259, 260, -1,
  1285.  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  1286.  272, 273, 274, 275, -1, -1, -1, -1, -1, -1,
  1287.  -1, -1, -1, -1, 286, -1, 288, 289, 290, 291,
  1288.  292, 293, -1, 295, 296, 297, 298, 299, 300, 301,
  1289.  302, 303, 257, 38, 259, 260, 41, 42, 43, 44,
  1290.  -1, -1, 47, -1, -1, -1, -1, 272, 273, 274,
  1291.  275, -1, -1, -1, 59, 60, 61, 62, -1, -1,
  1292.  -1, 286, -1, 288, 289, 290, 291, 292, 293, -1,
  1293.  295, 296, 297, 298, 299, 300, 301, 302, 303, -1,
  1294.  -1, -1, -1, -1, -1, -1, -1, 38, 93, 94,
  1295.  41, 42, 43, 44, 45, -1, 47, -1, 38, -1,
  1296.  -1, 41, 42, 43, -1, 45, -1, 47, -1, 60,
  1297.  61, 62, -1, -1, -1, -1, -1, -1, -1, 124,
  1298.  60, 61, 62, 38, -1, -1, 41, 42, 43, -1,
  1299.  45, -1, 47, 38, -1, -1, 41, 42, 43, -1,
  1300.  45, -1, 47, 94, -1, 60, 61, 62, -1, -1,
  1301.  -1, -1, -1, -1, 94, 60, 61, 62, 38, -1,
  1302.  -1, 41, 42, 43, -1, 45, -1, 47, -1, -1,
  1303.  -1, -1, -1, 124, -1, -1, -1, -1, -1, 94,
  1304.  60, 61, 62, 38, 124, -1, 41, 42, 43, 94,
  1305.  45, -1, 47, 38, -1, -1, -1, 42, 43, 44,
  1306.  45, -1, 47, -1, -1, 60, 61, 62, -1, 124,
  1307.  -1, -1, -1, -1, 94, 60, 61, 62, 38, 124,
  1308.  -1, -1, 42, 43, 44, 45, -1, 47, -1, 38,
  1309.  -1, -1, -1, 42, 43, 44, 45, -1, 47, 94,
  1310.  60, 61, 62, -1, 124, -1, -1, -1, -1, 94,
  1311.  -1, 60, 61, 62, -1, -1, 261, 262, 263, 264,
  1312.  265, -1, -1, -1, -1, -1, -1, -1, -1, 124,
  1313.  -1, -1, -1, -1, 94, -1, 281, 38, -1, 124,
  1314.  41, 42, 43, 38, 45, 94, 47, 42, 43, -1,
  1315.  45, -1, 47, -1, -1, -1, -1, -1, -1, 60,
  1316.  61, 62, -1, -1, 124, 60, 61, 62, -1, -1,
  1317.  261, 262, 263, 264, 265, 124, -1, -1, -1, -1,
  1318.  -1, 261, 262, 263, 264, 265, -1, -1, -1, -1,
  1319.  -1, -1, -1, 94, -1, -1, -1, -1, -1, 94,
  1320.  -1, -1, -1, -1, -1, -1, 261, 262, 263, 264,
  1321.  265, -1, -1, -1, -1, -1, 261, 262, 263, 264,
  1322.  265, -1, -1, 124, -1, -1, -1, -1, -1, 124,
  1323.  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  1324.  -1, 261, 262, 263, 264, 265, -1, -1, -1, -1,
  1325.  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  1326.  -1, -1, -1, -1, -1, -1, 261, 262, 263, 264,
  1327.  265, -1, -1, -1, -1, -1, 261, 262, 263, 264,
  1328.  265, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  1329.  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  1330.  -1, 261, 262, 263, 264, 265, -1, -1, -1, -1,
  1331.  -1, -1, 261, 262, 263, 264, 265, -1, -1, -1,
  1332.  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  1333.  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  1334.  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  1335.  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  1336.  261, 262, 263, 264, 265, -1, 261, 262, 263, 264,
  1337.  265,
  1338. };
  1339.  
  1340. #define YYFINAL 34
  1341. #ifndef YYDEBUG
  1342. #define YYDEBUG 1
  1343. #endif
  1344. #define YYMAXTOKEN 318
  1345. #if YYDEBUG
  1346. char *yyname[] =
  1347. {
  1348.     "end-of-file", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1349.     0, 0, 0, 0, "'&'", 0, "'('", "')'", "'*'", "'+'", "','", "'-'", "'.'", "'/'", 0, 0, 0, 0, 0, 0, 0, 0,
  1350.     0, 0, 0, "';'", "'<'", "'='", "'>'", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1351.     0, 0, 0, "'['", 0, "']'", "'^'", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1352.     0, "'{'", "'|'", "'}'", "'~'", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1353.     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1354.     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1355.     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "SYMBOL", "KEYWORD", "LITERAL",
  1356.     "STRING", "COLON_EQUAL", "GREATER_EQUAL", "LESSER_EQUAL", "NOT_EQUAL", "EQUAL_EQUAL",
  1357.     "EQUAL_ARROW", "COLON_COLON", "QUESTION_QUESTION", "ELLIPSIS", "UNRECOGNIZED",
  1358.  "EOF_TOKEN", "HASH_T", "HASH_F", "HASH_BRACKET", "HASH_PAREN", "HASH_NEXT",
  1359.     "HASH_REST", "HASH_KEY", "HASH_ALL_KEYS", "DEFINE", "END", "GENERIC", "HANDLER", "LET",
  1360.     "LOCAL", "METHOD", "OTHERWISE", "CLASS", "CONSTANT", "LIBRARY", "MODULE", "VARIABLE",
  1361.     "TEST", "SLOT", "BEGIN_TOKEN", "CASE", "IF", "UNLESS", "UNTIL", "WHILE", "BLOCK", "FOR",
  1362.     "SELECT", "USE", "EXPORT", "CREATE", "ELSE", "ELSEIF", "BY", "FINALLY", "THEN", "IN",
  1363.     "FROM", "TO", "ABOVE", "BELOW", "CLEANUP", "EXCEPTION",
  1364. };
  1365. char *yyrule[] =
  1366. {
  1367.     "$accept : evaluable_constituent",
  1368.     "defining_word : CLASS",
  1369.     "defining_word : CONSTANT",
  1370.     "defining_word : LIBRARY",
  1371.     "defining_word : MODULE",
  1372.     "defining_word : VARIABLE",
  1373.     "defining_word : TEST",
  1374.     "evaluable_constituent : ';'",
  1375.     "evaluable_constituent : defining_form ';'",
  1376.     "evaluable_constituent : expression ';'",
  1377.     "evaluable_constituent : local_declaration",
  1378.     "evaluable_constituent : EOF_TOKEN",
  1379.     "evaluable_constituent : error ';'",
  1380.     "evaluable_constituent : error EOF_TOKEN",
  1381.     "body :",
  1382.     "body : nonempty_body",
  1383.     "$$1 :",
  1384.     "nonempty_body : $$1 nonempty_constituents",
  1385.     "nonempty_constituents : constituent",
  1386.     "nonempty_constituents : constituent ';' constituents",
  1387.     "constituents :",
  1388.     "constituents : constituent",
  1389.     "constituents : constituent ';' constituents",
  1390.     "constituent : defining_form",
  1391.     "constituent : local_declaration",
  1392.     "constituent : expression",
  1393.     "expression : binary_operand",
  1394.     "expression : expression COLON_EQUAL expression",
  1395.     "expression : expression '&' expression",
  1396.     "expression : expression '|' expression",
  1397.     "expression : expression GREATER_EQUAL expression",
  1398.     "expression : expression LESSER_EQUAL expression",
  1399.     "expression : expression '<' expression",
  1400.     "expression : expression '>' expression",
  1401.     "expression : expression NOT_EQUAL expression",
  1402.     "expression : expression EQUAL_EQUAL expression",
  1403.     "expression : expression '=' expression",
  1404.     "expression : expression '-' expression",
  1405.     "expression : expression '+' expression",
  1406.     "expression : expression '/' expression",
  1407.     "expression : expression '*' expression",
  1408.     "expression : expression '^' expression",
  1409.     "binary_operand : KEYWORD",
  1410.     "binary_operand : keyless_binary_operand",
  1411.     "keyless_binary_operand : operand",
  1412.     "keyless_binary_operand : unary_operator operand",
  1413.     "unary_operator : '-'",
  1414.     "unary_operator : '~'",
  1415.     "operand : operand '(' arguments_opt ')'",
  1416.     "operand : operand '[' arguments ']'",
  1417.     "operand : operand '.' variable_name",
  1418.     "operand : leaf",
  1419.   "unparenthesized_operand : unparenthesized_operand '(' arguments_opt ')'",
  1420.     "unparenthesized_operand : unparenthesized_operand '[' arguments ']'",
  1421.     "unparenthesized_operand : unparenthesized_operand '.' variable_name",
  1422.     "unparenthesized_operand : unparenthesized_leaf",
  1423.     "arguments : KEYWORD expression",
  1424.     "arguments : expression",
  1425.     "arguments : KEYWORD expression ',' arguments",
  1426.     "arguments : expression ',' arguments",
  1427.     "leaf : '(' expression ')'",
  1428.     "leaf : unparenthesized_leaf",
  1429.     "unparenthesized_leaf : literal",
  1430.     "unparenthesized_leaf : variable_name",
  1431.     "unparenthesized_leaf : METHOD method_body END METHOD_opt",
  1432.     "unparenthesized_leaf : statement",
  1433.     "literal : LITERAL",
  1434.     "literal : strings",
  1435.     "literal : HASH_T",
  1436.     "literal : HASH_F",
  1437.     "literal : HASH_PAREN list_constants_opt ')'",
  1438.     "literal : HASH_BRACKET constants_opt ']'",
  1439.     "strings : STRING",
  1440.     "strings : STRING component_strings",
  1441.     "component_strings : STRING",
  1442.     "component_strings : STRING component_strings",
  1443.     "constants : constant",
  1444.     "constants : constant ',' constants",
  1445.     "list_constants : constant",
  1446.     "list_constants : constant '.' constant",
  1447.     "list_constants : constant ',' list_constants",
  1448.     "constant : literal",
  1449.     "constant : KEYWORD",
  1450.     "statement : begin_statement",
  1451.     "statement : if_statement",
  1452.     "statement : unless_statement",
  1453.     "statement : case_statement",
  1454.     "statement : select_statement",
  1455.     "statement : while_statement",
  1456.     "statement : until_statement",
  1457.     "statement : for_statement",
  1458.     "statement : block_statement",
  1459.     "$$2 :",
  1460.     "begin_statement : BEGIN_TOKEN $$2 body END",
  1461.     "$$3 :",
  1462.     "$$4 :",
  1463.     "if_statement : IF $$3 '(' expression ')' then_body else_parts $$4 END IF_opt",
  1464.     "then_body :",
  1465.     "then_body : nonempty_body",
  1466.     "else_parts :",
  1467.     "else_parts : ELSE",
  1468.     "else_parts : ELSE nonempty_body",
  1469.     "else_parts : ELSEIF '(' expression ')' body else_parts",
  1470.     "unless_statement : UNLESS '(' expression ')' body END UNLESS_opt",
  1471.     "case_statement : CASE case_body END CASE_opt",
  1472.     "case_body :",
  1473.     "$$5 :",
  1474.     "case_body : case_label $$5 case_tail SEMICOLON_opt",
  1475.     "case_tail :",
  1476.     "case_tail : ';'",
  1477.     "$$6 :",
  1478.     "case_tail : ';' case_label $$6 case_tail",
  1479.     "case_tail : constituent",
  1480.     "case_tail : constituent ';' case_tail",
  1481.     "$$7 :",
  1482.     "case_tail : constituent ';' case_label $$7 case_tail",
  1483.     "case_label : expression EQUAL_ARROW",
  1484.     "case_label : OTHERWISE EQUAL_ARROW_opt",
  1485.     "$$8 :",
  1486.     "$$9 :",
  1487.     "select_statement : SELECT $$8 '(' expression test_opt $$9 ')' select_body END SELECT_opt",
  1488.     "test_opt :",
  1489.     "test_opt : BY expression",
  1490.     "select_body :",
  1491.     "$$10 :",
  1492.     "select_body : select_label $$10 select_tail SEMICOLON_opt",
  1493.     "select_tail :",
  1494.     "select_tail : ';'",
  1495.     "$$11 :",
  1496.     "select_tail : ';' select_label $$11 select_tail",
  1497.     "select_tail : constituent",
  1498.     "select_tail : constituent ';' select_tail",
  1499.     "$$12 :",
  1500.     "select_tail : constituent ';' select_label $$12 select_tail",
  1501.     "select_label : expressions EQUAL_ARROW",
  1502.     "select_label : '(' expression ',' expressions ')' EQUAL_ARROW",
  1503.     "select_label : OTHERWISE EQUAL_ARROW_opt",
  1504.     "while_statement : WHILE '(' expression ')' body END WHILE_opt",
  1505.     "until_statement : UNTIL '(' expression ')' body END UNTIL_opt",
  1506.     "$$13 :",
  1507.     "$$14 :",
  1508.     "$$15 :",
  1509.     "for_statement : FOR $$13 '(' for_clauses_opt for_terminator_opt $$14 ')' body finally_opt END $$15 FOR_opt",
  1510.     "for_clauses : for_clause comma_opt",
  1511.     "for_clauses : for_clause ',' for_clauses",
  1512.     "for_clauses_opt :",
  1513.     "for_clauses_opt : for_clauses",
  1514.     "for_clause : variable '=' expression THEN expression",
  1515.     "for_clause : variable IN expression",
  1516.     "for_clause : variable FROM expression bound_opt increment_clause_opt",
  1517.     "bound_opt :",
  1518.     "bound_opt : TO expression",
  1519.     "bound_opt : ABOVE expression",
  1520.     "bound_opt : BELOW expression",
  1521.     "increment_clause_opt :",
  1522.     "increment_clause_opt : BY expression",
  1523.     "for_terminator_opt :",
  1524.     "for_terminator_opt : UNTIL expression",
  1525.     "for_terminator_opt : WHILE expression",
  1526.     "for_terminator_opt : KEYWORD expression",
  1527.     "finally_opt :",
  1528.     "finally_opt : FINALLY body",
  1529.     "$$16 :",
  1530.     "$$17 :",
  1531.     "block_statement : BLOCK $$16 '(' variable_name ')' body cleanups $$17 END BLOCK_opt",
  1532.     "cleanups :",
  1533.     "cleanups : cleanup",
  1534.     "cleanups : cleanup ';' cleanups",
  1535.     "cleanup : CLEANUP body",
  1536.     "cleanup : EXCEPTION '(' exception_args ')' body",
  1537.     "exception_args : variable_name",
  1538.     "exception_args : variable_name COLON_COLON variable_name comma_arguments_opt",
  1539.     "IF_opt :",
  1540.     "IF_opt : IF",
  1541.     "UNLESS_opt :",
  1542.     "UNLESS_opt : UNLESS",
  1543.     "CASE_opt :",
  1544.     "CASE_opt : CASE",
  1545.     "SELECT_opt :",
  1546.     "SELECT_opt : SELECT",
  1547.     "WHILE_opt :",
  1548.     "WHILE_opt : WHILE",
  1549.     "UNTIL_opt :",
  1550.     "UNTIL_opt : UNTIL",
  1551.     "FOR_opt :",
  1552.     "FOR_opt : FOR",
  1553.     "BLOCK_opt :",
  1554.     "BLOCK_opt : BLOCK",
  1555.     "defining_form : DEFINE modifiers_opt METHOD method_definition",
  1556.  "defining_form : DEFINE modifiers_opt GENERIC generic_function_definition",
  1557.     "defining_form : DEFINE VARIABLE bindings",
  1558.     "defining_form : DEFINE CONSTANT bindings",
  1559.     "$$18 :",
  1560.     "defining_form : DEFINE modifiers_opt CLASS $$18 class_definition",
  1561.     "$$19 :",
  1562.     "defining_form : DEFINE MODULE $$19 module_definition",
  1563.     "defining_form : DEFINE TEST SYMBOL '(' arguments_opt ')' body END TEST_opt variable_name_opt",
  1564.     "class_definition : variable_name expression_list slot_specs END CLASS_opt variable_name_opt",
  1565.     "slot_specs :",
  1566.     "slot_specs : slot_spec",
  1567.     "slot_specs : slot_spec ';' slot_specs",
  1568.     "slot_spec : initialization_argument_spec",
  1569.     "slot_spec : slot_modifiers_opt SLOT variable comma_arguments_opt",
  1570.     "slot_modifiers_opt :",
  1571.     "slot_modifiers_opt : SYMBOL slot_modifiers_opt",
  1572.     "slot_modifiers_opt : CLASS slot_modifiers_opt",
  1573.     "initialization_argument_spec : SYMBOL KEYWORD comma_arguments_opt",
  1574.  "initialization_argument_spec : SYMBOL SYMBOL KEYWORD comma_arguments_opt",
  1575.     "method_definition : variable_name method_body END METHOD_opt variable_name_opt",
  1576.     "generic_function_definition : variable_name generic_function_body",
  1577.     "module_definition : variable_name module_clauses END MODULE_opt variable_name_opt",
  1578.     "module_clauses :",
  1579.     "module_clauses : module_clause ';' module_clauses",
  1580.     "module_clause : use_clause",
  1581.     "module_clause : export_clause",
  1582.     "module_clause : create_clause",
  1583.     "use_clause : USE variable_name property_list_opt",
  1584.     "export_clause : EXPORT item_names",
  1585.     "create_clause : CREATE item_names",
  1586.     "modifiers : SYMBOL",
  1587.     "modifiers : SYMBOL modifiers",
  1588.     "expression_list : '(' expressions_opt ')'",
  1589.     "expressions : expression",
  1590.     "expressions : expression ',' expressions",
  1591.     "item_names : variable_name",
  1592.     "item_names : variable_name ',' item_names",
  1593.     "$$20 :",
  1594.     "method_body : '(' parameter_list_opt ')' $$20 SEMICOLON_opt body",
  1595.     "method_body : '(' parameter_list_opt ')' EQUAL_ARROW variable ';' body",
  1596.     "method_body : '(' parameter_list_opt ')' EQUAL_ARROW '(' value_list_opt ')' SEMICOLON_opt body",
  1597.     "generic_function_body : '(' parameter_list_opt ')'",
  1598.   "generic_function_body : '(' parameter_list_opt ')' EQUAL_ARROW variable",
  1599.     "generic_function_body : '(' parameter_list_opt ')' EQUAL_ARROW '(' value_list_opt ')'",
  1600.     "parameter_list : parameter",
  1601.     "parameter_list : parameter_list ',' parameter",
  1602.     "parameter_list : parameter_list ',' next_rest_key_parameter_list",
  1603.     "parameter_list : next_rest_key_parameter_list",
  1604.     "next_rest_key_parameter_list : HASH_NEXT variable_name",
  1605.     "next_rest_key_parameter_list : HASH_NEXT variable_name ',' rest_key_parameter_list",
  1606.     "next_rest_key_parameter_list : rest_key_parameter_list",
  1607.     "rest_key_parameter_list : HASH_REST variable_name",
  1608.  "rest_key_parameter_list : HASH_REST variable_name ',' key_parameter_list",
  1609.     "rest_key_parameter_list : key_parameter_list",
  1610.     "key_parameter_list : HASH_KEY",
  1611.     "key_parameter_list : HASH_KEY ',' HASH_ALL_KEYS",
  1612.     "key_parameter_list : HASH_KEY keyword_parameters",
  1613.     "key_parameter_list : HASH_ALL_KEYS",
  1614.     "parameter : variable_name type_designator_opt",
  1615.     "parameter : variable_name EQUAL_EQUAL expression",
  1616.     "keyword_parameters : keyword_parameter",
  1617.     "keyword_parameters : HASH_ALL_KEYS",
  1618.     "keyword_parameters : keyword_parameter ',' keyword_parameters",
  1619.     "keyword_parameter : KEYWORD variable_name_opt default_opt",
  1620.     "keyword_parameter : variable_name default_opt",
  1621.     "default : '=' expression",
  1622.     "local_declaration : LET bindings",
  1623.     "local_declaration : LET HANDLER condition '=' handler",
  1624.     "$$21 :",
  1625.     "local_declaration : LOCAL $$21 local_methods",
  1626.     "condition : unparenthesized_operand",
  1627.     "condition : '(' type property_list_opt ')'",
  1628.     "handler : expression",
  1629.     "local_methods : METHOD_opt method_definition",
  1630.     "$$22 :",
  1631.     "local_methods : METHOD_opt method_definition ',' $$22 local_methods",
  1632.     "bindings : variable '=' expression",
  1633.     "bindings : '(' variable_list ')' '=' expression",
  1634.     "variable_list : variable",
  1635.     "variable_list : variable ',' variable_list",
  1636.     "variable_list : HASH_REST variable_name",
  1637.     "value_variable_list : variable",
  1638.     "value_variable_list : variable ',' value_variable_list",
  1639.     "value_variable_list : HASH_REST variable",
  1640.     "variable : variable_name type_designator_opt",
  1641.     "variable_name : SYMBOL",
  1642.     "variable_name : defining_word",
  1643.     "variable_name_opt :",
  1644.     "variable_name_opt : variable_name",
  1645.     "type_designator : COLON_COLON type",
  1646.     "type : operand",
  1647.     "property_list : property",
  1648.     "property_list : property property_list",
  1649.     "property : ',' KEYWORD value",
  1650.     "value : expression",
  1651.     "value : '{' property_set_opt '}'",
  1652.     "property_set : property_set_member",
  1653.     "property_set : property_set_member ',' property_set",
  1654.     "property_set_member : property_set_item",
  1655.     "property_set_member : property_set_item EQUAL_ARROW property_set_item",
  1656.     "property_set_item : variable_name",
  1657.     "EQUAL_ARROW_opt :",
  1658.     "EQUAL_ARROW_opt : EQUAL_ARROW",
  1659.     "METHOD_opt :",
  1660.     "METHOD_opt : METHOD",
  1661.     "CLASS_opt :",
  1662.     "CLASS_opt : CLASS",
  1663.     "TEST_opt :",
  1664.     "TEST_opt : TEST",
  1665.     "MODULE_opt :",
  1666.     "MODULE_opt : MODULE",
  1667.     "SEMICOLON_opt :",
  1668.     "SEMICOLON_opt : ';'",
  1669.     "comma_opt :",
  1670.     "comma_opt : ','",
  1671.     "comma_arguments_opt :",
  1672.     "comma_arguments_opt : ',' arguments",
  1673.     "arguments_opt :",
  1674.     "arguments_opt : arguments",
  1675.     "constants_opt :",
  1676.     "constants_opt : constants",
  1677.     "list_constants_opt :",
  1678.     "list_constants_opt : list_constants",
  1679.     "default_opt :",
  1680.     "default_opt : default",
  1681.     "expressions_opt :",
  1682.     "expressions_opt : expressions",
  1683.     "modifiers_opt :",
  1684.     "modifiers_opt : modifiers",
  1685.     "parameter_list_opt :",
  1686.     "parameter_list_opt : parameter_list",
  1687.     "property_list_opt :",
  1688.     "property_list_opt : property_list",
  1689.     "property_set_opt :",
  1690.     "property_set_opt : property_set",
  1691.     "type_designator_opt :",
  1692.     "type_designator_opt : type_designator",
  1693.     "value_list_opt :",
  1694.     "value_list_opt : value_variable_list",
  1695. };
  1696.  
  1697. #endif
  1698. #ifndef YYSTYPE
  1699. typedef int YYSTYPE;
  1700.  
  1701. #endif
  1702. #define yyclearin (yychar=(-1))
  1703. #define yyerrok (yyerrflag=0)
  1704. #ifdef YYSTACKSIZE
  1705. #ifndef YYMAXDEPTH
  1706. #define YYMAXDEPTH YYSTACKSIZE
  1707. #endif
  1708. #else
  1709. #ifdef YYMAXDEPTH
  1710. #define YYSTACKSIZE YYMAXDEPTH
  1711. #else
  1712. #define YYSTACKSIZE 500
  1713. #define YYMAXDEPTH 500
  1714. #endif
  1715. #endif
  1716. int yydebug;
  1717. int yynerrs;
  1718. int yyerrflag;
  1719. int yychar;
  1720. short *yyssp;
  1721. YYSTYPE *yyvsp;
  1722. YYSTYPE yyval;
  1723. YYSTYPE yylval;
  1724. short yyss[YYSTACKSIZE];
  1725. YYSTYPE yyvs[YYSTACKSIZE];
  1726.  
  1727. #define yystacksize YYSTACKSIZE
  1728. #line 1306 "dylan.y"
  1729.  
  1730. void
  1731. yyerror (char *s)
  1732. {
  1733.     char line_str[20];
  1734.  
  1735.     sprintf (line_str, " [line #%d]", yylineno);
  1736.     warning (s,
  1737.          make_byte_string (yytext),
  1738.          make_byte_string (line_str),
  1739.          NULL);
  1740. }
  1741.  
  1742. /*
  1743.  * append_bang appends l2 to l1 if l1 is nonempty.
  1744.  * if l1 is empty, it just returns l2.
  1745.  */
  1746. static Object
  1747. append_bang (Object l1, Object l2)
  1748. {
  1749.     Object res = l1;
  1750.  
  1751.     if (EMPTYLISTP (l1)) {
  1752.     return l2;
  1753. #if 0
  1754.     fprintf (stderr, "Whoa! append! to empty_list!\n");
  1755.     abort ();
  1756. #endif
  1757.     }
  1758.     while (PAIRP (CDR (l1))) {
  1759.     l1 = CDR (l1);
  1760.     }
  1761.     CDR (l1) = l2;
  1762.     return res;
  1763. }
  1764.  
  1765. static void
  1766. push_bindings ()
  1767. {
  1768.     binding_stack = cons (make_integer (0), binding_stack);
  1769. }
  1770.  
  1771. static void
  1772. pop_bindings ()
  1773. {
  1774.     binding_stack = CDR (binding_stack);
  1775. }
  1776.  
  1777.  
  1778. static Object
  1779. bindings_top ()
  1780. {
  1781.     return CAR (binding_stack);
  1782. }
  1783.  
  1784. static Object
  1785. bindings_increment ()
  1786. {
  1787.     CAR (binding_stack) = make_integer (INTVAL (CAR (binding_stack)) + 1);
  1788. }
  1789.  
  1790. static Object
  1791. make_setter_expr (Object place, Object value)
  1792. {
  1793.     Object newsym;
  1794.  
  1795.     if (!PAIRP (place)) {
  1796.     error ("Trying to make a setter from something that's not a place",
  1797.            place, NULL);
  1798.     }
  1799.     newsym = gensym (1);
  1800.     return listem (unbinding_begin_symbol,
  1801.            make_integer (1),
  1802.            cons (local_bind_symbol,
  1803.              cons (cons (cons (newsym,
  1804.                        cons (value,
  1805.                          make_empty_list ())),
  1806.                      make_empty_list ()),
  1807.                    make_empty_list ())),
  1808.            cons (make_setter_symbol (FIRST (place)),
  1809.              cons (newsym, CDR (place))),
  1810.            newsym,
  1811.            NULL);
  1812. }
  1813.  
  1814. #define    GENSYM_BUFSIZE    128
  1815. char gensymbuf[GENSYM_BUFSIZE];
  1816.  
  1817. static Object
  1818. gensym (int i)
  1819. {
  1820.     sprintf (gensymbuf, "\"tmp%d", i);
  1821.     return make_symbol (gensymbuf);
  1822. }
  1823.  
  1824. int
  1825. allocation_word (Object word)
  1826. {
  1827.     return (id (word, instance_symbol) || id (word, class_symbol)
  1828.         || id (word, each_subclass_symbol) || id (word, constant_symbol)
  1829.         || id (word, virtual_symbol) || id (word, inherited_symbol));
  1830. }
  1831.  
  1832. #ifdef OPTIMIZE_SPECIALIZERS
  1833. static void
  1834. symtab_push_begin ()
  1835. {
  1836.     symtab = cons (make_table (DEFAULT_TABLE_SIZE), symtab);
  1837. }
  1838.  
  1839. static void
  1840. symtab_insert_bindings (Object bindings)
  1841. {
  1842.     Object variable;
  1843.  
  1844. #if 0
  1845.     warning ("Got symtab_insert_bindings", bindings, NULL);
  1846. #endif
  1847.  
  1848.     /*
  1849.      * bindings created by parser are always of form
  1850.      *  #( #( variable1, variable2, ... , variablen, values))
  1851.      */
  1852.     bindings = CAR (bindings);
  1853.     while (!EMPTYLISTP (CDR (bindings))) {
  1854.     variable = CAR (bindings);
  1855.     if (PAIRP (variable)) {
  1856. #if 0
  1857.         warning ("  symtab element",
  1858.              CAR (variable),
  1859.              SECOND (variable),
  1860.              NULL);
  1861. #endif
  1862.         table_element_setter (CAR (symtab),
  1863.                   CAR (variable),
  1864.                   SECOND (variable));
  1865.     }
  1866.     bindings = CDR (bindings);
  1867.     }
  1868. }
  1869.  
  1870. static void
  1871. symtab_push_parameters (Object parameters)
  1872. {
  1873.     Object variable;
  1874.  
  1875.     symtab = cons (make_table (DEFAULT_TABLE_SIZE), symtab);
  1876. #if 0
  1877.     warning ("Got symtab_insert_parameters", parameters, NULL);
  1878. #endif
  1879.  
  1880.     while (PAIRP (parameters)) {
  1881.     variable = CAR (parameters);
  1882.     if (!PAIRP (variable) && !SYMBOLP (variable)) {
  1883.         /* we got to a keyword parameter or a hash-word */
  1884.         break;
  1885.     }
  1886.     if (PAIRP (variable)) {
  1887. #if 0
  1888.         warning ("  symtab element",
  1889.              CAR (variable),
  1890.              SECOND (variable),
  1891.              NULL);
  1892. #endif
  1893.         table_element_setter (CAR (symtab),
  1894.                   CAR (variable),
  1895.                   SECOND (variable));
  1896.     }
  1897.     parameters = CDR (parameters);
  1898.     }
  1899. }
  1900.  
  1901. static void
  1902. symtab_pop ()
  1903. {
  1904.     symtab = CDR (symtab);
  1905. }
  1906.  
  1907. #endif
  1908. #line 1888 "y.tab.c"
  1909. #define YYABORT goto yyabort
  1910. #define YYACCEPT goto yyaccept
  1911. #define YYERROR goto yyerrlab
  1912. int
  1913. yyparse ()
  1914. {
  1915.     register int yym, yyn, yystate;
  1916.  
  1917. #if YYDEBUG
  1918.     register char *yys;
  1919.     extern char *getenv ();
  1920.  
  1921.     if (yys = getenv ("YYDEBUG")) {
  1922.     yyn = *yys;
  1923.     if (yyn >= '0' && yyn <= '9')
  1924.         yydebug = yyn - '0';
  1925.     }
  1926. #endif
  1927.  
  1928.     yynerrs = 0;
  1929.     yyerrflag = 0;
  1930.     yychar = (-1);
  1931.  
  1932.     yyssp = yyss;
  1933.     yyvsp = yyvs;
  1934.     *yyssp = yystate = 0;
  1935.  
  1936.   yyloop:
  1937.     if (yyn = yydefred[yystate])
  1938.     goto yyreduce;
  1939.     if (yychar < 0) {
  1940.     if ((yychar = yylex ()) < 0)
  1941.         yychar = 0;
  1942. #if YYDEBUG
  1943.     if (yydebug) {
  1944.         yys = 0;
  1945.         if (yychar <= YYMAXTOKEN)
  1946.         yys = yyname[yychar];
  1947.         if (!yys)
  1948.         yys = "illegal-symbol";
  1949.         printf ("yydebug: state %d, reading %d (%s)\n", yystate,
  1950.             yychar, yys);
  1951.     }
  1952. #endif
  1953.     }
  1954.     if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
  1955.     yyn <= YYTABLESIZE && yycheck[yyn] == yychar) {
  1956. #if YYDEBUG
  1957.     if (yydebug)
  1958.         printf ("yydebug: state %d, shifting to state %d\n",
  1959.             yystate, yytable[yyn]);
  1960. #endif
  1961.     if (yyssp >= yyss + yystacksize - 1) {
  1962.         goto yyoverflow;
  1963.     }
  1964.     *++yyssp = yystate = yytable[yyn];
  1965.     *++yyvsp = yylval;
  1966.     yychar = (-1);
  1967.     if (yyerrflag > 0)
  1968.         --yyerrflag;
  1969.     goto yyloop;
  1970.     }
  1971.     if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
  1972.     yyn <= YYTABLESIZE && yycheck[yyn] == yychar) {
  1973.     yyn = yytable[yyn];
  1974.     goto yyreduce;
  1975.     }
  1976.     if (yyerrflag)
  1977.     goto yyinrecovery;
  1978. #ifdef lint
  1979.     goto yynewerror;
  1980. #endif
  1981.   yynewerror:
  1982.     yyerror ("syntax error");
  1983. #ifdef lint
  1984.     goto yyerrlab;
  1985. #endif
  1986.   yyerrlab:
  1987.     ++yynerrs;
  1988.   yyinrecovery:
  1989.     if (yyerrflag < 3) {
  1990.     yyerrflag = 3;
  1991.     for (;;) {
  1992.         if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
  1993.         yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE) {
  1994. #if YYDEBUG
  1995.         if (yydebug)
  1996.             printf ("yydebug: state %d, error recovery shifting\
  1997.  to state %d\n", *yyssp, yytable[yyn]);
  1998. #endif
  1999.         if (yyssp >= yyss + yystacksize - 1) {
  2000.             goto yyoverflow;
  2001.         }
  2002.         *++yyssp = yystate = yytable[yyn];
  2003.         *++yyvsp = yylval;
  2004.         goto yyloop;
  2005.         } else {
  2006. #if YYDEBUG
  2007.         if (yydebug)
  2008.             printf ("yydebug: error recovery discarding state %d\n",
  2009.                 *yyssp);
  2010. #endif
  2011.         if (yyssp <= yyss)
  2012.             goto yyabort;
  2013.         --yyssp;
  2014.         --yyvsp;
  2015.         }
  2016.     }
  2017.     } else {
  2018.     if (yychar == 0)
  2019.         goto yyabort;
  2020. #if YYDEBUG
  2021.     if (yydebug) {
  2022.         yys = 0;
  2023.         if (yychar <= YYMAXTOKEN)
  2024.         yys = yyname[yychar];
  2025.         if (!yys)
  2026.         yys = "illegal-symbol";
  2027.         printf ("yydebug: state %d, error recovery discards token %d (%s)\n",
  2028.             yystate, yychar, yys);
  2029.     }
  2030. #endif
  2031.     yychar = (-1);
  2032.     goto yyloop;
  2033.     }
  2034.   yyreduce:
  2035. #if YYDEBUG
  2036.     if (yydebug)
  2037.     printf ("yydebug: state %d, reducing by rule %d (%s)\n",
  2038.         yystate, yyn, yyrule[yyn]);
  2039. #endif
  2040.     yym = yylen[yyn];
  2041.     yyval = yyvsp[1 - yym];
  2042.     switch (yyn) {
  2043.     case 7:
  2044. #line 199 "dylan.y"
  2045.     {
  2046.         *parse_value_ptr = unspecified_object;
  2047.         YYACCEPT;
  2048.     }
  2049.     break;
  2050.     case 8:
  2051. #line 202 "dylan.y"
  2052.     {
  2053.         *parse_value_ptr = yyvsp[-1];
  2054.         YYACCEPT;
  2055.     }
  2056.     break;
  2057.     case 9:
  2058. #line 205 "dylan.y"
  2059.     {
  2060.         *parse_value_ptr = yyvsp[-1];
  2061.         YYACCEPT;
  2062.     }
  2063.     break;
  2064.     case 10:
  2065. #line 208 "dylan.y"
  2066.     {
  2067.         *parse_value_ptr = unspecified_object;
  2068.         warning ("local binding outside of block ignored", NULL);
  2069.         YYACCEPT;
  2070.     }
  2071.     break;
  2072.     case 11:
  2073. #line 217 "dylan.y"
  2074.     {
  2075.         *parse_value_ptr = eof_object;
  2076.         YYACCEPT;
  2077.     }
  2078.     break;
  2079.     case 12:
  2080. #line 220 "dylan.y"
  2081.     {
  2082.         yyerrok;
  2083.         *parse_value_ptr = unspecified_object;
  2084.         YYACCEPT;
  2085.     }
  2086.     break;
  2087.     case 13:
  2088. #line 225 "dylan.y"
  2089.     {
  2090.         yyerrok;
  2091.         *parse_value_ptr = eof_object;
  2092.         YYACCEPT;
  2093.     }
  2094.     break;
  2095.     case 14:
  2096. #line 231 "dylan.y"
  2097.     {
  2098.         yyval = unspecified_object;
  2099.     }
  2100.     break;
  2101.     case 15:
  2102. #line 232 "dylan.y"
  2103.     {
  2104.         yyval = yyvsp[0];
  2105.     }
  2106.     break;
  2107.     case 16:
  2108. #line 235 "dylan.y"
  2109.     {
  2110.         push_bindings ();
  2111.     }
  2112.     break;
  2113.     case 17:
  2114. #line 239 "dylan.y"
  2115.     {
  2116.         if (INTVAL (bindings_top ()) > 0) {
  2117.         yyval = cons (unbinding_begin_symbol,
  2118.                   cons (bindings_top (), yyvsp[0]));
  2119.         } else if (list_length (yyvsp[0]) > 1) {
  2120.         yyval = cons (begin_symbol, yyvsp[0]);
  2121.         } else {
  2122.         yyval = FIRST (yyvsp[0]);
  2123.         }
  2124.         pop_bindings ();
  2125.     }
  2126.     break;
  2127.     case 18:
  2128. #line 253 "dylan.y"
  2129.     {
  2130.         yyval = cons (yyvsp[0], make_empty_list ());
  2131.     }
  2132.     break;
  2133.     case 19:
  2134. #line 254 "dylan.y"
  2135.     {
  2136.         yyval = cons (yyvsp[-2], yyvsp[0]);
  2137.     }
  2138.     break;
  2139.     case 20:
  2140. #line 257 "dylan.y"
  2141.     {
  2142.         yyval = make_empty_list ();
  2143.     }
  2144.     break;
  2145.     case 21:
  2146. #line 258 "dylan.y"
  2147.     {
  2148.         yyval = cons (yyvsp[0], make_empty_list ());
  2149.     }
  2150.     break;
  2151.     case 22:
  2152. #line 259 "dylan.y"
  2153.     {
  2154.         yyval = cons (yyvsp[-2], yyvsp[0]);
  2155.     }
  2156.     break;
  2157.     case 23:
  2158. #line 266 "dylan.y"
  2159.     {
  2160.         yyval = yyvsp[0];
  2161.     }
  2162.     break;
  2163.     case 24:
  2164. #line 267 "dylan.y"
  2165.     {
  2166.         yyval = yyvsp[0];
  2167.     }
  2168.     break;
  2169.     case 25:
  2170. #line 268 "dylan.y"
  2171.     {
  2172.         yyval = yyvsp[0];
  2173.     }
  2174.     break;
  2175.     case 26:
  2176. #line 276 "dylan.y"
  2177.     {
  2178.         yyval = yyvsp[0];
  2179.     }
  2180.     break;
  2181.     case 27:
  2182. #line 279 "dylan.y"
  2183.     {
  2184.         if (SYMBOLP (yyvsp[-2])) {
  2185.         yyval = listem (set_bang_symbol, yyvsp[-2], yyvsp[0], NULL);
  2186.         } else {
  2187.         yyval = make_setter_expr (yyvsp[-2], yyvsp[0]);
  2188.         }
  2189.     }
  2190.     break;
  2191.     case 28:
  2192. #line 286 "dylan.y"
  2193.     {
  2194.         yyval = listem (yyvsp[-1], yyvsp[-2], yyvsp[0], NULL);
  2195.     }
  2196.     break;
  2197.     case 29:
  2198. #line 288 "dylan.y"
  2199.     {
  2200.         yyval = listem (yyvsp[-1], yyvsp[-2], yyvsp[0], NULL);
  2201.     }
  2202.     break;
  2203.     case 30:
  2204. #line 290 "dylan.y"
  2205.     {
  2206.         yyval = listem (yyvsp[-1], yyvsp[-2], yyvsp[0], NULL);
  2207.     }
  2208.     break;
  2209.     case 31:
  2210. #line 292 "dylan.y"
  2211.     {
  2212.         yyval = listem (yyvsp[-1], yyvsp[-2], yyvsp[0], NULL);
  2213.     }
  2214.     break;
  2215.     case 32:
  2216. #line 294 "dylan.y"
  2217.     {
  2218.         yyval = listem (yyvsp[-1], yyvsp[-2], yyvsp[0], NULL);
  2219.     }
  2220.     break;
  2221.     case 33:
  2222. #line 296 "dylan.y"
  2223.     {
  2224.         yyval = listem (yyvsp[-1], yyvsp[-2], yyvsp[0], NULL);
  2225.     }
  2226.     break;
  2227.     case 34:
  2228. #line 298 "dylan.y"
  2229.     {
  2230.         yyval = listem (yyvsp[-1], yyvsp[-2], yyvsp[0], NULL);
  2231.     }
  2232.     break;
  2233.     case 35:
  2234. #line 300 "dylan.y"
  2235.     {
  2236.         yyval = listem (yyvsp[-1], yyvsp[-2], yyvsp[0], NULL);
  2237.     }
  2238.     break;
  2239.     case 36:
  2240. #line 302 "dylan.y"
  2241.     {
  2242.         yyval = listem (yyvsp[-1], yyvsp[-2], yyvsp[0], NULL);
  2243.     }
  2244.     break;
  2245.     case 37:
  2246. #line 304 "dylan.y"
  2247.     {
  2248.         yyval = listem (yyvsp[-1], yyvsp[-2], yyvsp[0], NULL);
  2249.     }
  2250.     break;
  2251.     case 38:
  2252. #line 306 "dylan.y"
  2253.     {
  2254.         yyval = listem (yyvsp[-1], yyvsp[-2], yyvsp[0], NULL);
  2255.     }
  2256.     break;
  2257.     case 39:
  2258. #line 308 "dylan.y"
  2259.     {
  2260.         yyval = listem (yyvsp[-1], yyvsp[-2], yyvsp[0], NULL);
  2261.     }
  2262.     break;
  2263.     case 40:
  2264. #line 310 "dylan.y"
  2265.     {
  2266.         yyval = listem (yyvsp[-1], yyvsp[-2], yyvsp[0], NULL);
  2267.     }
  2268.     break;
  2269.     case 41:
  2270. #line 312 "dylan.y"
  2271.     {
  2272.         yyval = listem (yyvsp[-1], yyvsp[-2], yyvsp[0], NULL);
  2273.     }
  2274.     break;
  2275.     case 42:
  2276. #line 319 "dylan.y"
  2277.     {
  2278.         yyval = yyvsp[0];
  2279.     }
  2280.     break;
  2281.     case 43:
  2282. #line 320 "dylan.y"
  2283.     {
  2284.         yyval = yyvsp[0];
  2285.     }
  2286.     break;
  2287.     case 44:
  2288. #line 323 "dylan.y"
  2289.     {
  2290.         yyval = yyvsp[0];
  2291.     }
  2292.     break;
  2293.     case 45:
  2294. #line 325 "dylan.y"
  2295.     {
  2296.         yyval = cons (yyvsp[-1], cons (yyvsp[0], make_empty_list ()));
  2297.     }
  2298.     break;
  2299.     case 46:
  2300. #line 328 "dylan.y"
  2301.     {
  2302.         yyval = negative_symbol;
  2303.     }
  2304.     break;
  2305.     case 47:
  2306. #line 329 "dylan.y"
  2307.     {
  2308.         yyval = yyvsp[0];
  2309.     }
  2310.     break;
  2311.     case 48:
  2312. #line 333 "dylan.y"
  2313.     {
  2314. #ifdef OPTIMIZE_SPECIALIZERS
  2315.         yyval = cons (yyvsp[-3], yyvsp[-1]);
  2316. #else
  2317.         yyval = cons (yyvsp[-3], yyvsp[-1]);
  2318. #endif
  2319.     }
  2320.     break;
  2321.     case 49:
  2322. #line 341 "dylan.y"
  2323.     {
  2324.         yyval = cons (element_symbol, cons (yyvsp[-3], yyvsp[-1]));
  2325.     }
  2326.     break;
  2327.     case 50:
  2328. #line 343 "dylan.y"
  2329.     {
  2330.         yyval = cons (yyvsp[0], cons (yyvsp[-2], make_empty_list ()));
  2331.     }
  2332.     break;
  2333.     case 51:
  2334. #line 344 "dylan.y"
  2335.     {
  2336.         yyval = yyvsp[0];
  2337.     }
  2338.     break;
  2339.     case 52:
  2340. #line 348 "dylan.y"
  2341.     {
  2342. #ifdef OPTIMIZE_SPECIALIZERS
  2343.         yyval = cons (yyvsp[-3], yyvsp[-1]);
  2344. #else
  2345.         yyval = cons (yyvsp[-3], yyvsp[-1]);
  2346. #endif
  2347.     }
  2348.     break;
  2349.     case 53:
  2350. #line 356 "dylan.y"
  2351.     {
  2352.         yyval = cons (element_symbol, cons (yyvsp[-3], yyvsp[-1]));
  2353.     }
  2354.     break;
  2355.     case 54:
  2356. #line 358 "dylan.y"
  2357.     {
  2358.         yyval = cons (yyvsp[0], cons (yyvsp[-2], make_empty_list ()));
  2359.     }
  2360.     break;
  2361.     case 55:
  2362. #line 359 "dylan.y"
  2363.     {
  2364.         yyval = yyvsp[0];
  2365.     }
  2366.     break;
  2367.     case 56:
  2368. #line 362 "dylan.y"
  2369.     {
  2370.         yyval = listem (yyvsp[-1], yyvsp[0], NULL);
  2371.     }
  2372.     break;
  2373.     case 57:
  2374. #line 363 "dylan.y"
  2375.     {
  2376.         yyval = cons (yyvsp[0], make_empty_list ());
  2377.     }
  2378.     break;
  2379.     case 58:
  2380. #line 365 "dylan.y"
  2381.     {
  2382.         yyval = cons (yyvsp[-3], cons (yyvsp[-2], yyvsp[0]));
  2383.     }
  2384.     break;
  2385.     case 59:
  2386. #line 367 "dylan.y"
  2387.     {
  2388.         yyval = cons (yyvsp[-2], yyvsp[0]);
  2389.     }
  2390.     break;
  2391.     case 60:
  2392. #line 369 "dylan.y"
  2393.     {
  2394.         yyval = yyvsp[-1];
  2395.     }
  2396.     break;
  2397.     case 61:
  2398. #line 370 "dylan.y"
  2399.     {
  2400.         yyval = yyvsp[0];
  2401.     }
  2402.     break;
  2403.     case 62:
  2404. #line 373 "dylan.y"
  2405.     {
  2406.         yyval = yyvsp[0];
  2407.     }
  2408.     break;
  2409.     case 63:
  2410. #line 374 "dylan.y"
  2411.     {
  2412.         yyval = yyvsp[0];
  2413.     }
  2414.     break;
  2415.     case 64:
  2416. #line 376 "dylan.y"
  2417.     {
  2418.         yyval = cons (yyvsp[-3], yyvsp[-2]);
  2419.     }
  2420.     break;
  2421.     case 65:
  2422. #line 377 "dylan.y"
  2423.     {
  2424.         yyval = yyvsp[0];
  2425.     }
  2426.     break;
  2427.     case 66:
  2428. #line 379 "dylan.y"
  2429.     {
  2430.         yyval = yyvsp[0];
  2431.     }
  2432.     break;
  2433.     case 67:
  2434. #line 380 "dylan.y"
  2435.     {
  2436.         yyval = yyvsp[0];
  2437.     }
  2438.     break;
  2439.     case 68:
  2440. #line 381 "dylan.y"
  2441.     {
  2442.         yyval = yyvsp[0];
  2443.     }
  2444.     break;
  2445.     case 69:
  2446. #line 382 "dylan.y"
  2447.     {
  2448.         yyval = yyvsp[0];
  2449.     }
  2450.     break;
  2451.     case 70:
  2452. #line 384 "dylan.y"
  2453.     {
  2454.         yyval = yyvsp[-1];
  2455.     }
  2456.     break;
  2457.     case 71:
  2458. #line 386 "dylan.y"
  2459.     {
  2460.         yyval = make_sov (yyvsp[-1]);
  2461.     }
  2462.     break;
  2463.     case 72:
  2464. #line 388 "dylan.y"
  2465.     {
  2466.         yyval = yyvsp[0];
  2467.     }
  2468.     break;
  2469.     case 73:
  2470. #line 390 "dylan.y"
  2471.     {
  2472.         yyval = cons (concatenate_symbol, cons (yyvsp[-1], yyvsp[0]));
  2473.     }
  2474.     break;
  2475.     case 74:
  2476. #line 393 "dylan.y"
  2477.     {
  2478.         yyval = cons (yyvsp[0], make_empty_list ());
  2479.     }
  2480.     break;
  2481.     case 75:
  2482. #line 395 "dylan.y"
  2483.     {
  2484.         yyval = cons (yyvsp[-1], yyvsp[0]);
  2485.     }
  2486.     break;
  2487.     case 76:
  2488. #line 397 "dylan.y"
  2489.     {
  2490.         yyval = cons (yyvsp[0], make_empty_list ());
  2491.     }
  2492.     break;
  2493.     case 77:
  2494. #line 398 "dylan.y"
  2495.     {
  2496.         yyval = cons (yyvsp[-2], yyvsp[0]);
  2497.     }
  2498.     break;
  2499.     case 78:
  2500. #line 401 "dylan.y"
  2501.     {
  2502.         yyval = listem (pair_symbol,
  2503.                 yyvsp[0],
  2504.                 make_empty_list (),
  2505.                 NULL);
  2506.     }
  2507.     break;
  2508.     case 79:
  2509. #line 406 "dylan.y"
  2510.     {
  2511.         yyval = listem (pair_symbol, yyvsp[-2], yyvsp[0], NULL);
  2512.     }
  2513.     break;
  2514.     case 80:
  2515. #line 408 "dylan.y"
  2516.     {
  2517.         yyval = listem (pair_symbol, yyvsp[-2], yyvsp[0], NULL);
  2518.     }
  2519.     break;
  2520.     case 81:
  2521. #line 412 "dylan.y"
  2522.     {
  2523.         yyval = yyvsp[0];
  2524.     }
  2525.     break;
  2526.     case 82:
  2527. #line 413 "dylan.y"
  2528.     {
  2529.         yyval = yyvsp[0];
  2530.     }
  2531.     break;
  2532.     case 83:
  2533. #line 419 "dylan.y"
  2534.     {
  2535.         yyval = yyvsp[0];
  2536.     }
  2537.     break;
  2538.     case 84:
  2539. #line 420 "dylan.y"
  2540.     {
  2541.         yyval = yyvsp[0];
  2542.     }
  2543.     break;
  2544.     case 85:
  2545. #line 421 "dylan.y"
  2546.     {
  2547.         yyval = yyvsp[0];
  2548.     }
  2549.     break;
  2550.     case 86:
  2551. #line 422 "dylan.y"
  2552.     {
  2553.         yyval = yyvsp[0];
  2554.     }
  2555.     break;
  2556.     case 87:
  2557. #line 423 "dylan.y"
  2558.     {
  2559.         yyval = yyvsp[0];
  2560.     }
  2561.     break;
  2562.     case 88:
  2563. #line 424 "dylan.y"
  2564.     {
  2565.         yyval = yyvsp[0];
  2566.     }
  2567.     break;
  2568.     case 89:
  2569. #line 425 "dylan.y"
  2570.     {
  2571.         yyval = yyvsp[0];
  2572.     }
  2573.     break;
  2574.     case 90:
  2575. #line 426 "dylan.y"
  2576.     {
  2577.         yyval = yyvsp[0];
  2578.     }
  2579.     break;
  2580.     case 91:
  2581. #line 427 "dylan.y"
  2582.     {
  2583.         yyval = yyvsp[0];
  2584.     }
  2585.     break;
  2586.     case 92:
  2587. #line 435 "dylan.y"
  2588.     {
  2589. #ifdef OPTIMIZE_SPECIALIZERS
  2590.         symtab_push_begin ();
  2591. #endif
  2592.     }
  2593.     break;
  2594.     case 93:
  2595. #line 441 "dylan.y"
  2596.     {
  2597. #ifdef OPTIMIZE_SPECIALIZERS
  2598.         symtab_pop ();
  2599. #endif
  2600.         yyval = yyvsp[-1];
  2601.     }
  2602.     break;
  2603.     case 94:
  2604. #line 450 "dylan.y"
  2605.     {
  2606.         push_intermediate_words (yyvsp[0]);
  2607.     }
  2608.     break;
  2609.     case 95:
  2610. #line 453 "dylan.y"
  2611.     {
  2612.         pop_intermediate_words ();
  2613.     }
  2614.     break;
  2615.     case 96:
  2616. #line 455 "dylan.y"
  2617.     {
  2618.         yyval = cons (yyvsp[-9],
  2619.               cons (yyvsp[-6],
  2620.                 append_bang (cons (yyvsp[-4],
  2621.                            make_empty_list ()),
  2622.                          yyvsp[-3])));
  2623.     }
  2624.     break;
  2625.     case 97:
  2626. #line 462 "dylan.y"
  2627.     {
  2628.         yyval = false_object;
  2629.     }
  2630.     break;
  2631.     case 98:
  2632. #line 463 "dylan.y"
  2633.     {
  2634.         yyval = yyvsp[0];
  2635.     }
  2636.     break;
  2637.     case 99:
  2638. #line 466 "dylan.y"
  2639.     {
  2640.         yyval = cons (false_object, make_empty_list ());
  2641.     }
  2642.     break;
  2643.     case 100:
  2644. #line 467 "dylan.y"
  2645.     {
  2646.         yyval = cons (false_object, make_empty_list ());
  2647.     }
  2648.     break;
  2649.     case 101:
  2650. #line 468 "dylan.y"
  2651.     {
  2652.         yyval = cons (yyvsp[0], make_empty_list ());
  2653.     }
  2654.     break;
  2655.     case 102:
  2656. #line 470 "dylan.y"
  2657.     {
  2658.         yyval = cons (cons (if_symbol,
  2659.                 cons (yyvsp[-3],
  2660.                       append_bang (cons (yyvsp[-1],
  2661.                              make_empty_list ()),
  2662.                            yyvsp[0]))),
  2663.               make_empty_list ());
  2664.     }
  2665.     break;
  2666.     case 103:
  2667. #line 480 "dylan.y"
  2668.     {
  2669.         yyval = cons (yyvsp[-6], cons (yyvsp[-4], cons (yyvsp[-2], make_empty_list ())));
  2670.     }
  2671.     break;
  2672.     case 104:
  2673. #line 486 "dylan.y"
  2674.     {
  2675.         yyval = cons (cond_symbol, yyvsp[-2]);
  2676.     }
  2677.     break;
  2678.     case 105:
  2679. #line 489 "dylan.y"
  2680.     {
  2681.         yyval = make_empty_list ();
  2682.     }
  2683.     break;
  2684.     case 106:
  2685. #line 491 "dylan.y"
  2686.     {
  2687.         push_bindings ();
  2688.     }
  2689.     break;
  2690.     case 107:
  2691. #line 493 "dylan.y"
  2692.     {
  2693.         yyval = cons (cons (yyvsp[-3], !EMPTYLISTP (CAR (yyvsp[-1]))
  2694.                 ? cons (cons (unbinding_begin_symbol,
  2695.                           cons (bindings_top (),
  2696.                             CAR (yyvsp[-1]))),
  2697.                     make_empty_list ())
  2698.                 : make_empty_list ()),
  2699.               CDR (yyvsp[-1]));
  2700.     }
  2701.     break;
  2702.     case 108:
  2703. #line 504 "dylan.y"
  2704.     {
  2705.         yyval = cons (make_empty_list (), make_empty_list ());
  2706.     }
  2707.     break;
  2708.     case 109:
  2709. #line 505 "dylan.y"
  2710.     {
  2711.         yyval = cons (make_empty_list (), make_empty_list ());
  2712.     }
  2713.     break;
  2714.     case 110:
  2715. #line 507 "dylan.y"
  2716.     {
  2717.         push_bindings ();
  2718.     }
  2719.     break;
  2720.     case 111:
  2721. #line 509 "dylan.y"
  2722.     {
  2723.         yyval = cons (make_empty_list (),
  2724.               cons (cons (yyvsp[-2], !EMPTYLISTP (CAR (yyvsp[0]))
  2725.                       ? cons (cons (unbinding_begin_symbol,
  2726.                             cons (bindings_top (),
  2727.                               CAR (yyvsp[0]))),
  2728.                           make_empty_list ())
  2729.                       : make_empty_list ()),
  2730.                 CDR (yyvsp[0])));
  2731.         pop_bindings ();
  2732.     }
  2733.     break;
  2734.     case 112:
  2735. #line 521 "dylan.y"
  2736.     {
  2737.         yyval = cons (cons (yyvsp[0], make_empty_list ()), make_empty_list ());
  2738.     }
  2739.     break;
  2740.     case 113:
  2741. #line 524 "dylan.y"
  2742.     {
  2743.         yyval = cons (cons (yyvsp[-2], FIRST (yyvsp[0])), CDR (yyvsp[0]));
  2744.     }
  2745.     break;
  2746.     case 114:
  2747. #line 527 "dylan.y"
  2748.     {
  2749.         push_bindings ();
  2750.     }
  2751.     break;
  2752.     case 115:
  2753. #line 529 "dylan.y"
  2754.     {
  2755.         yyval = cons (cons (yyvsp[-4], make_empty_list ()),
  2756.               cons (cons (yyvsp[-2], !EMPTYLISTP (CAR (yyvsp[0]))
  2757.                       ? cons (cons (unbinding_begin_symbol,
  2758.                             cons (bindings_top (),
  2759.                               CAR (yyvsp[0]))),
  2760.                           make_empty_list ())
  2761.                       : make_empty_list ()),
  2762.                 CDR (yyvsp[0])));
  2763.         pop_bindings ();
  2764.     }
  2765.     break;
  2766.     case 116:
  2767. #line 545 "dylan.y"
  2768.     {
  2769.         yyval = yyvsp[-1];
  2770.     }
  2771.     break;
  2772.     case 117:
  2773. #line 547 "dylan.y"
  2774.     {
  2775.         yyval = else_keyword;
  2776.     }
  2777.     break;
  2778.     case 118:
  2779. #line 550 "dylan.y"
  2780.     {
  2781.         push_intermediate_words (yyvsp[0]);
  2782.     }
  2783.     break;
  2784.     case 119:
  2785. #line 552 "dylan.y"
  2786.     {
  2787.         pop_intermediate_words ();
  2788.     }
  2789.     break;
  2790.     case 120:
  2791. #line 555 "dylan.y"
  2792.     {
  2793.         yyval = cons (yyvsp[-9], cons (yyvsp[-6], cons (yyvsp[-5] ? yyvsp[-5] : equal_equal_symbol,
  2794.                                 yyvsp[-2])));
  2795.     }
  2796.     break;
  2797.     case 121:
  2798. #line 559 "dylan.y"
  2799.     {
  2800.         yyval = NULL;
  2801.     }
  2802.     break;
  2803.     case 122:
  2804. #line 560 "dylan.y"
  2805.     {
  2806.         yyval = yyvsp[0];
  2807.     }
  2808.     break;
  2809.     case 123:
  2810. #line 562 "dylan.y"
  2811.     {
  2812.         yyval = make_empty_list ();
  2813.     }
  2814.     break;
  2815.     case 124:
  2816. #line 564 "dylan.y"
  2817.     {
  2818.         push_bindings ();
  2819.     }
  2820.     break;
  2821.     case 125:
  2822. #line 566 "dylan.y"
  2823.     {
  2824.         yyval = cons (cons (yyvsp[-3], !EMPTYLISTP (CAR (yyvsp[-1]))
  2825.                 ? cons (cons (unbinding_begin_symbol,
  2826.                           cons (bindings_top (),
  2827.                             CAR (yyvsp[-1]))),
  2828.                     make_empty_list ())
  2829.                 : make_empty_list ()),
  2830.               CDR (yyvsp[-1]));
  2831.     }
  2832.     break;
  2833.     case 126:
  2834. #line 576 "dylan.y"
  2835.     {
  2836.         yyval = cons (make_empty_list (), make_empty_list ());
  2837.     }
  2838.     break;
  2839.     case 127:
  2840. #line 577 "dylan.y"
  2841.     {
  2842.         yyval = cons (make_empty_list (), make_empty_list ());
  2843.     }
  2844.     break;
  2845.     case 128:
  2846. #line 579 "dylan.y"
  2847.     {
  2848.         push_bindings ();
  2849.     }
  2850.     break;
  2851.     case 129:
  2852. #line 581 "dylan.y"
  2853.     {
  2854.         yyval = cons (make_empty_list (),
  2855.               cons (cons (yyvsp[-2], !EMPTYLISTP (CAR (yyvsp[0]))
  2856.                       ? cons (cons (unbinding_begin_symbol,
  2857.                             cons (bindings_top (),
  2858.                               CAR (yyvsp[0]))),
  2859.                           make_empty_list ())
  2860.                       : make_empty_list ()),
  2861.                 CDR (yyvsp[0])));
  2862.         pop_bindings ();
  2863.     }
  2864.     break;
  2865.     case 130:
  2866. #line 593 "dylan.y"
  2867.     {
  2868.         yyval = cons (cons (yyvsp[0], make_empty_list ()), make_empty_list ());
  2869.     }
  2870.     break;
  2871.     case 131:
  2872. #line 596 "dylan.y"
  2873.     {
  2874.         yyval = cons (cons (yyvsp[-2], FIRST (yyvsp[0])), CDR (yyvsp[0]));
  2875.     }
  2876.     break;
  2877.     case 132:
  2878. #line 599 "dylan.y"
  2879.     {
  2880.         push_bindings ();
  2881.     }
  2882.     break;
  2883.     case 133:
  2884. #line 601 "dylan.y"
  2885.     {
  2886.         yyval = cons (cons (yyvsp[-4], make_empty_list ()),
  2887.               cons (cons (yyvsp[-2], !EMPTYLISTP (CAR (yyvsp[0]))
  2888.                       ? cons (cons (unbinding_begin_symbol,
  2889.                             cons (bindings_top (),
  2890.                               CAR (yyvsp[0]))),
  2891.                           make_empty_list ())
  2892.                       : make_empty_list ()),
  2893.                 CDR (yyvsp[0])));
  2894.         pop_bindings ();
  2895.     }
  2896.     break;
  2897.     case 134:
  2898. #line 617 "dylan.y"
  2899.     {
  2900.         yyval = yyvsp[-1];
  2901.     }
  2902.     break;
  2903.     case 135:
  2904. #line 619 "dylan.y"
  2905.     {
  2906.         yyval = cons (yyvsp[-4], yyvsp[-2]);
  2907.     }
  2908.     break;
  2909.     case 136:
  2910. #line 621 "dylan.y"
  2911.     {
  2912.         yyval = else_keyword;
  2913.     }
  2914.     break;
  2915.     case 137:
  2916. #line 625 "dylan.y"
  2917.     {
  2918.         yyval = cons (yyvsp[-6], cons (yyvsp[-4], cons (yyvsp[-2], make_empty_list ())));
  2919.     }
  2920.     break;
  2921.     case 138:
  2922. #line 629 "dylan.y"
  2923.     {
  2924.         yyval = cons (yyvsp[-6], cons (yyvsp[-4], cons (yyvsp[-2], make_empty_list ())));
  2925.     }
  2926.     break;
  2927.     case 139:
  2928. #line 632 "dylan.y"
  2929.     {
  2930.         push_intermediate_words (yyvsp[0]);
  2931.     }
  2932.     break;
  2933.     case 140:
  2934. #line 635 "dylan.y"
  2935.     {
  2936.         pop_intermediate_words ();
  2937.     }
  2938.     break;
  2939.     case 141:
  2940. #line 637 "dylan.y"
  2941.     {
  2942.         pop_intermediate_words ();
  2943.     }
  2944.     break;
  2945.     case 142:
  2946. #line 638 "dylan.y"
  2947.     {
  2948.         yyval = listem (for_symbol,
  2949.                 yyvsp[-8],
  2950.                 append_bang (yyvsp[-7], yyvsp[-3]),
  2951.                 yyvsp[-4],
  2952.                 NULL);
  2953.     }
  2954.     break;
  2955.     case 143:
  2956. #line 645 "dylan.y"
  2957.     {
  2958.         yyval = cons (yyvsp[-1], make_empty_list ());
  2959.     }
  2960.     break;
  2961.     case 144:
  2962. #line 646 "dylan.y"
  2963.     {
  2964.         yyval = cons (yyvsp[-2], yyvsp[0]);
  2965.     }
  2966.     break;
  2967.     case 145:
  2968. #line 649 "dylan.y"
  2969.     {
  2970.         yyval = make_empty_list ();
  2971.     }
  2972.     break;
  2973.     case 146:
  2974. #line 650 "dylan.y"
  2975.     {
  2976.         yyval = yyvsp[0];
  2977.     }
  2978.     break;
  2979.     case 147:
  2980. #line 654 "dylan.y"
  2981.     {
  2982.         yyval = cons (yyvsp[-4], cons (yyvsp[-2], cons (yyvsp[0], make_empty_list ())));
  2983.     }
  2984.     break;
  2985.     case 148:
  2986. #line 656 "dylan.y"
  2987.     {
  2988.         yyval = cons (collection_keyword,
  2989.              cons (yyvsp[-2], cons (yyvsp[0], make_empty_list ())));
  2990.     }
  2991.     break;
  2992.     case 149:
  2993. #line 659 "dylan.y"
  2994.     {
  2995.         yyval = cons (range_keyword,
  2996.               cons (yyvsp[-4],
  2997.                 cons (yyvsp[-2],
  2998.                       append_bang (yyvsp[-1], yyvsp[0]))));
  2999.     }
  3000.     break;
  3001.     case 150:
  3002. #line 665 "dylan.y"
  3003.     {
  3004.         yyval = make_empty_list ();
  3005.     }
  3006.     break;
  3007.     case 151:
  3008. #line 667 "dylan.y"
  3009.     {
  3010.         yyval = cons (yyvsp[-1], cons (yyvsp[0], make_empty_list ()));
  3011.     }
  3012.     break;
  3013.     case 152:
  3014. #line 669 "dylan.y"
  3015.     {
  3016.         yyval = cons (yyvsp[-1], cons (yyvsp[0], make_empty_list ()));
  3017.     }
  3018.     break;
  3019.     case 153:
  3020. #line 671 "dylan.y"
  3021.     {
  3022.         yyval = cons (yyvsp[-1], cons (yyvsp[0], make_empty_list ()));
  3023.     }
  3024.     break;
  3025.     case 154:
  3026. #line 674 "dylan.y"
  3027.     {
  3028.         yyval = make_empty_list ();
  3029.     }
  3030.     break;
  3031.     case 155:
  3032. #line 676 "dylan.y"
  3033.     {
  3034.         yyval = cons (yyvsp[-1], cons (yyvsp[0], make_empty_list ()));
  3035.     }
  3036.     break;
  3037.     case 156:
  3038. #line 679 "dylan.y"
  3039.     {
  3040.         yyval = cons (false_object,
  3041.               make_empty_list ());
  3042.     }
  3043.     break;
  3044.     case 157:
  3045. #line 681 "dylan.y"
  3046.     {
  3047.         yyval = cons (yyvsp[0], make_empty_list ());
  3048.     }
  3049.     break;
  3050.     case 158:
  3051. #line 682 "dylan.y"
  3052.     {
  3053.         yyval = cons (cons (not_symbol,
  3054.                 cons (yyvsp[0],
  3055.                       make_empty_list ())),
  3056.               make_empty_list ());
  3057.     }
  3058.     break;
  3059.     case 159:
  3060. #line 686 "dylan.y"
  3061.     {
  3062.         if (yyvsp[-1] == until_keyword) {
  3063.         yyval = cons (yyvsp[0], make_empty_list ());
  3064.         } else if (yyvsp[-1] == while_keyword) {
  3065.         yyval = cons (cons (not_symbol,
  3066.                     cons (yyvsp[0],
  3067.                       make_empty_list ())),
  3068.                   make_empty_list ());
  3069.         } else {
  3070.         error ("Bogus keyword in if",
  3071.                yyvsp[-1],
  3072.                NULL);
  3073.         }
  3074.     }
  3075.     break;
  3076.     case 160:
  3077. #line 701 "dylan.y"
  3078.     {
  3079.         yyval = make_empty_list ();
  3080.     }
  3081.     break;
  3082.     case 161:
  3083. #line 702 "dylan.y"
  3084.     {
  3085.         yyval = cons (yyvsp[0], make_empty_list ());
  3086.     }
  3087.     break;
  3088.     case 162:
  3089. #line 705 "dylan.y"
  3090.     {
  3091.         push_intermediate_words (yyvsp[0]);
  3092.     }
  3093.     break;
  3094.     case 163:
  3095. #line 707 "dylan.y"
  3096.     {
  3097.         pop_intermediate_words ();
  3098.     }
  3099.     break;
  3100.     case 165:
  3101. #line 711 "dylan.y"
  3102.     {
  3103.         yyval = make_empty_list ();
  3104.     }
  3105.     break;
  3106.     case 166:
  3107. #line 712 "dylan.y"
  3108.     {
  3109.         yyval = cons (yyvsp[0], make_empty_list ());
  3110.     }
  3111.     break;
  3112.     case 167:
  3113. #line 713 "dylan.y"
  3114.     {
  3115.         yyval = cons (yyvsp[-2], yyvsp[0]);
  3116.     }
  3117.     break;
  3118.     case 168:
  3119. #line 716 "dylan.y"
  3120.     {
  3121.         yyval = cons (yyvsp[-1], cons (yyvsp[0], make_empty_list ()));
  3122.     }
  3123.     break;
  3124.     case 169:
  3125. #line 718 "dylan.y"
  3126.     {
  3127.         yyval = cons (yyvsp[-4], cons (yyvsp[-2], cons (yyvsp[0], make_empty_list ())));
  3128.     }
  3129.     break;
  3130.     case 170:
  3131. #line 721 "dylan.y"
  3132.     {
  3133.         yyval = cons (yyvsp[0], make_empty_list ());
  3134.     }
  3135.     break;
  3136.     case 171:
  3137. #line 723 "dylan.y"
  3138.     {
  3139.         yyval = cons (cons (yyvsp[-3], cons (yyvsp[-1], make_empty_list ())), yyvsp[0]);
  3140.     }
  3141.     break;
  3142.     case 188:
  3143. #line 760 "dylan.y"
  3144.     {
  3145.         yyval = cons (define_method_symbol, yyvsp[0]);
  3146.     }
  3147.     break;
  3148.     case 189:
  3149. #line 764 "dylan.y"
  3150.     {
  3151.         yyval = cons (define_generic_function_symbol, yyvsp[0]);
  3152.     }
  3153.     break;
  3154.     case 190:
  3155. #line 769 "dylan.y"
  3156.     {
  3157.         yyval = cons (define_variable_symbol, CAR (yyvsp[0]));
  3158.     }
  3159.     break;
  3160.     case 191:
  3161. #line 772 "dylan.y"
  3162.     {
  3163.         yyval = cons (define_constant_symbol, CAR (yyvsp[0]));
  3164.     }
  3165.     break;
  3166.     case 192:
  3167. #line 775 "dylan.y"
  3168.     {
  3169.         push_intermediate_words (yyvsp[0]);
  3170.     }
  3171.     break;
  3172.     case 193:
  3173. #line 777 "dylan.y"
  3174.     {
  3175.         pop_intermediate_words ();
  3176.         if (EMPTYLISTP (yyvsp[-3])) {
  3177.         yyval = cons (define_class_symbol, yyvsp[0]);
  3178.         } else {
  3179.         yyval = cons (define_class_symbol,
  3180.                   cons (cons (modifiers_keyword,
  3181.                       yyvsp[-3]),
  3182.                     yyvsp[0]));
  3183.         }
  3184.     }
  3185.     break;
  3186.     case 194:
  3187. #line 792 "dylan.y"
  3188.     {
  3189.         push_intermediate_words (yyvsp[0]);
  3190.     }
  3191.     break;
  3192.     case 195:
  3193. #line 794 "dylan.y"
  3194.     {
  3195.         yyval = cons (define_module_symbol, yyvsp[0]);
  3196.     }
  3197.     break;
  3198.     case 196:
  3199. #line 798 "dylan.y"
  3200.     {
  3201.         yyval = listem (define_test_symbol, yyvsp[-7], yyvsp[-5],
  3202.                 empty_string, yyvsp[-3], NULL);
  3203.     }
  3204.     break;
  3205.     case 197:
  3206. #line 804 "dylan.y"
  3207.     {
  3208.         yyval = cons (yyvsp[-5], cons (yyvsp[-4], yyvsp[-3]));
  3209.     }
  3210.     break;
  3211.     case 198:
  3212. #line 807 "dylan.y"
  3213.     {
  3214.         yyval = make_empty_list ();
  3215.     }
  3216.     break;
  3217.     case 199:
  3218. #line 808 "dylan.y"
  3219.     {
  3220.         yyval = cons (yyvsp[0], make_empty_list ());
  3221.     }
  3222.     break;
  3223.     case 200:
  3224. #line 809 "dylan.y"
  3225.     {
  3226.         yyval = cons (yyvsp[-2], yyvsp[0]);
  3227.     }
  3228.     break;
  3229.     case 201:
  3230. #line 813 "dylan.y"
  3231.     {
  3232.         yyval = yyvsp[0];
  3233.     }
  3234.     break;
  3235.     case 202:
  3236. #line 816 "dylan.y"
  3237.     {
  3238.         Object mods, mod;
  3239.         Object allocation, getter_name, slot_type, dynamism;
  3240.         int dynamism_specified = 0, allocation_specified = 0;
  3241.         int slot_type_specified = 0;
  3242.  
  3243.         slot_type = cons (type_keyword,
  3244.                   cons (CLASSNAME (object_class),
  3245.                     make_empty_list ()));
  3246.         allocation = cons (allocation_keyword,
  3247.                    cons (instance_symbol,
  3248.                      make_empty_list ()));
  3249.         dynamism = cons (dynamism_keyword,
  3250.                  cons (open_symbol,
  3251.                    make_empty_list ()));
  3252.         if (PAIRP (yyvsp[-1])) {
  3253.         getter_name = CAR (yyvsp[-1]);
  3254.         slot_type_specified = 1;
  3255.         SECOND (slot_type) = SECOND (yyvsp[-1]);
  3256.         } else {
  3257.         getter_name = yyvsp[-1];
  3258.         }
  3259.         mods = yyvsp[-3];
  3260.         while (PAIRP (mods)) {
  3261.         mod = CAR (mods);
  3262.         if (id (mod, open_symbol)) {
  3263.             if (dynamism_specified) {
  3264.             error ("Slot dyanamism specified twice", NULL);
  3265.             }
  3266.             dynamism_specified = 1;
  3267.         } else if (id (mod, sealed_symbol)) {
  3268.             if (dynamism_specified) {
  3269.             error ("Slot dyanamism specified twice", NULL);
  3270.             }
  3271.             SECOND (dynamism) = sealed_symbol;
  3272.         } else if (allocation_word (mod)) {
  3273.             if (allocation_specified) {
  3274.             error ("Slot allocation specified twice", NULL);
  3275.             }
  3276.             allocation_specified = 1;
  3277.             SECOND (allocation) = mod;
  3278.             if (!EMPTYLISTP (CDR (mods))) {
  3279.             error ("Slot modifiers follow allocation",
  3280.                    mods, NULL);
  3281.             }
  3282.         }
  3283.         mods = CDR (mods);
  3284.         }
  3285.         yyval = cons (getter_name, yyvsp[0]);
  3286.         if (slot_type_specified) {
  3287.         append_bang (yyval, slot_type);
  3288.         }
  3289.         if (allocation_specified) {
  3290.         append_bang (yyval, allocation);
  3291.         }
  3292.         if (dynamism_specified) {
  3293.         append_bang (yyval, dynamism);
  3294.         }
  3295.     }
  3296.     break;
  3297.     case 203:
  3298. #line 876 "dylan.y"
  3299.     {
  3300.         yyval = make_empty_list ();
  3301.     }
  3302.     break;
  3303.     case 204:
  3304. #line 877 "dylan.y"
  3305.     {
  3306.         yyval = cons (yyvsp[-1], yyvsp[0]);
  3307.     }
  3308.     break;
  3309.     case 205:
  3310. #line 878 "dylan.y"
  3311.     {
  3312.         yyval = cons (yyvsp[-1], yyvsp[0]);
  3313.     }
  3314.     break;
  3315.     case 206:
  3316. #line 882 "dylan.y"
  3317.     {
  3318.         if (yyvsp[-2] != keyword_symbol) {
  3319.         error ("Bad initialization argument specification", NULL);
  3320.         } else {
  3321.         yyval = cons (init_keyword_keyword, cons (yyvsp[-1], yyvsp[0]));
  3322.         }
  3323.     }
  3324.     break;
  3325.     case 207:
  3326. #line 890 "dylan.y"
  3327.     {
  3328.         if (yyvsp[-3] != required_symbol || yyvsp[-2] != keyword_symbol) {
  3329.         error ("Bad initialization argument specification", NULL);
  3330.         } else {
  3331.         yyval = cons (required_init_keyword_keyword,
  3332.                   cons (yyvsp[-1], yyvsp[0]));
  3333.         }
  3334.     }
  3335.     break;
  3336.     case 208:
  3337. #line 901 "dylan.y"
  3338.     {
  3339.         yyval = cons (yyvsp[-4], yyvsp[-3]);
  3340.     }
  3341.     break;
  3342.     case 209:
  3343. #line 905 "dylan.y"
  3344.     {
  3345.         yyval = cons (yyvsp[-1], yyvsp[0]);
  3346.     }
  3347.     break;
  3348.     case 210:
  3349. #line 913 "dylan.y"
  3350.     {
  3351.         yyval = cons (yyvsp[-4], yyvsp[-3]);
  3352.     }
  3353.     break;
  3354.     case 211:
  3355. #line 916 "dylan.y"
  3356.     {
  3357.         yyval = make_empty_list ();
  3358.     }
  3359.     break;
  3360.     case 212:
  3361. #line 918 "dylan.y"
  3362.     {
  3363.         yyval = cons (yyvsp[-2], yyvsp[0]);
  3364.     }
  3365.     break;
  3366.     case 213:
  3367. #line 921 "dylan.y"
  3368.     {
  3369.         yyval = yyvsp[0];
  3370.     }
  3371.     break;
  3372.     case 214:
  3373. #line 922 "dylan.y"
  3374.     {
  3375.         yyval = yyvsp[0];
  3376.     }
  3377.     break;
  3378.     case 215:
  3379. #line 923 "dylan.y"
  3380.     {
  3381.         yyval = yyvsp[0];
  3382.     }
  3383.     break;
  3384.     case 216:
  3385. #line 927 "dylan.y"
  3386.     {
  3387.         yyval = cons (yyvsp[-2], cons (yyvsp[-1], yyvsp[0]));
  3388.     }
  3389.     break;
  3390.     case 217:
  3391. #line 930 "dylan.y"
  3392.     {
  3393.         yyval = cons (yyvsp[-1], yyvsp[0]);
  3394.     }
  3395.     break;
  3396.     case 218:
  3397. #line 932 "dylan.y"
  3398.     {
  3399.         yyval = cons (yyvsp[-1], yyvsp[0]);
  3400.     }
  3401.     break;
  3402.     case 219:
  3403. #line 935 "dylan.y"
  3404.     {
  3405.         yyval = cons (yyvsp[0], make_empty_list ());
  3406.     }
  3407.     break;
  3408.     case 220:
  3409. #line 936 "dylan.y"
  3410.     {
  3411.         yyval = cons (yyvsp[-1], yyvsp[0]);
  3412.     }
  3413.     break;
  3414.     case 221:
  3415. #line 939 "dylan.y"
  3416.     {
  3417.         yyval = yyvsp[-1];
  3418.     }
  3419.     break;
  3420.     case 222:
  3421. #line 942 "dylan.y"
  3422.     {
  3423.         yyval = cons (yyvsp[0], make_empty_list ());
  3424.     }
  3425.     break;
  3426.     case 223:
  3427. #line 943 "dylan.y"
  3428.     {
  3429.         yyval = cons (yyvsp[-2], yyvsp[0]);
  3430.     }
  3431.     break;
  3432.     case 224:
  3433. #line 962 "dylan.y"
  3434.     {
  3435.         yyval = cons (yyvsp[0], make_empty_list ());
  3436.     }
  3437.     break;
  3438.     case 225:
  3439. #line 963 "dylan.y"
  3440.     {
  3441.         yyval = cons (yyvsp[-2], yyvsp[0]);
  3442.     }
  3443.     break;
  3444.     case 226:
  3445. #line 970 "dylan.y"
  3446.     {
  3447. #ifdef OPTIMIZE_SPECIALIZERS
  3448.         symtab_push_parameters (yyvsp[-1]);
  3449. #endif
  3450.     }
  3451.     break;
  3452.     case 227:
  3453. #line 976 "dylan.y"
  3454.     {
  3455. #ifdef OPTIMIZE_SPECIALIZERS
  3456.         symtab_pop ();
  3457. #endif
  3458.         yyval = cons (yyvsp[-4], cons (yyvsp[0], make_empty_list ()));
  3459.     }
  3460.     break;
  3461.     case 228:
  3462. #line 983 "dylan.y"
  3463.     {
  3464.         yyval = cons (append_bang (yyvsp[-5],
  3465.                        cons (hash_values_symbol,
  3466.                      cons (yyvsp[-2], make_empty_list ()))),
  3467.               cons (yyvsp[0], make_empty_list ()));
  3468.     }
  3469.     break;
  3470.     case 229:
  3471. #line 989 "dylan.y"
  3472.     {
  3473.         yyval = cons (append_bang (yyvsp[-7],
  3474.                        cons (hash_values_symbol, yyvsp[-3])),
  3475.               cons (yyvsp[0], make_empty_list ()));
  3476.     }
  3477.     break;
  3478.     case 230:
  3479. #line 994 "dylan.y"
  3480.     {
  3481.         yyval = cons (yyvsp[-1], make_empty_list ());
  3482.     }
  3483.     break;
  3484.     case 231:
  3485. #line 996 "dylan.y"
  3486.     {
  3487.         yyval = cons (append_bang (yyvsp[-3], cons (hash_values_symbol,
  3488.                       cons (yyvsp[0], make_empty_list ()))),
  3489.               make_empty_list ());
  3490.     }
  3491.     break;
  3492.     case 232:
  3493. #line 1000 "dylan.y"
  3494.     {
  3495.         yyval = cons (append_bang (yyvsp[-5], cons (hash_values_symbol, yyvsp[-1])),
  3496.               make_empty_list ());
  3497.     }
  3498.     break;
  3499.     case 233:
  3500. #line 1004 "dylan.y"
  3501.     {
  3502.         yyval = cons (yyvsp[0], make_empty_list ());
  3503.     }
  3504.     break;
  3505.     case 234:
  3506. #line 1006 "dylan.y"
  3507.     {
  3508.         yyval = append_bang (yyvsp[-2], cons (yyvsp[0], make_empty_list ()));
  3509.     }
  3510.     break;
  3511.     case 235:
  3512. #line 1008 "dylan.y"
  3513.     {
  3514.         yyval = append_bang (yyvsp[-2], yyvsp[0]);
  3515.     }
  3516.     break;
  3517.     case 236:
  3518. #line 1010 "dylan.y"
  3519.     {
  3520.         yyval = yyvsp[0];
  3521.     }
  3522.     break;
  3523.     case 237:
  3524. #line 1014 "dylan.y"
  3525.     {
  3526.         yyval = cons (yyvsp[-1], cons (yyvsp[0], make_empty_list ()));
  3527.     }
  3528.     break;
  3529.     case 238:
  3530. #line 1016 "dylan.y"
  3531.     {
  3532.         yyval = cons (yyvsp[-3], cons (yyvsp[-2], yyvsp[0]));
  3533.     }
  3534.     break;
  3535.     case 239:
  3536. #line 1018 "dylan.y"
  3537.     {
  3538.         yyval = yyvsp[0];
  3539.     }
  3540.     break;
  3541.     case 240:
  3542. #line 1022 "dylan.y"
  3543.     {
  3544.         yyval = cons (yyvsp[-1], cons (yyvsp[0], make_empty_list ()));
  3545.     }
  3546.     break;
  3547.     case 241:
  3548. #line 1024 "dylan.y"
  3549.     {
  3550.         yyval = cons (yyvsp[-3], cons (yyvsp[-2], yyvsp[0]));
  3551.     }
  3552.     break;
  3553.     case 242:
  3554. #line 1026 "dylan.y"
  3555.     {
  3556.         yyval = yyvsp[0];
  3557.     }
  3558.     break;
  3559.     case 243:
  3560. #line 1029 "dylan.y"
  3561.     {
  3562.         yyval = cons (yyvsp[0], make_empty_list ());
  3563.     }
  3564.     break;
  3565.     case 244:
  3566. #line 1031 "dylan.y"
  3567.     {
  3568.         yyval = cons (yyvsp[-2], cons (yyvsp[0], make_empty_list ()));
  3569.     }
  3570.     break;
  3571.     case 245:
  3572. #line 1033 "dylan.y"
  3573.     {
  3574.         yyval = cons (yyvsp[-1], yyvsp[0]);
  3575.     }
  3576.     break;
  3577.     case 246:
  3578. #line 1035 "dylan.y"
  3579.     {
  3580.         yyval = cons (yyvsp[0], make_empty_list ());
  3581.     }
  3582.     break;
  3583.     case 247:
  3584. #line 1039 "dylan.y"
  3585.     {
  3586.         yyval = (yyvsp[0] ? cons (yyvsp[-1], cons (yyvsp[0], make_empty_list ()))
  3587.              : yyvsp[-1]);
  3588.     }
  3589.     break;
  3590.     case 248:
  3591. #line 1043 "dylan.y"
  3592.     {
  3593.         yyval = cons (yyvsp[-2], cons (cons (singleton_symbol,
  3594.                        cons (yyvsp[0], make_empty_list ())),
  3595.                        make_empty_list ()));
  3596.     }
  3597.     break;
  3598.     case 249:
  3599. #line 1048 "dylan.y"
  3600.     {
  3601.         yyval = cons (yyvsp[0], make_empty_list ());
  3602.     }
  3603.     break;
  3604.     case 250:
  3605. #line 1049 "dylan.y"
  3606.     {
  3607.         yyval = cons (yyvsp[0], make_empty_list ());
  3608.     }
  3609.     break;
  3610.     case 251:
  3611. #line 1051 "dylan.y"
  3612.     {
  3613.         yyval = cons (yyvsp[-2], yyvsp[0]);
  3614.     }
  3615.     break;
  3616.     case 252:
  3617. #line 1056 "dylan.y"
  3618.     {
  3619.         if (yyvsp[0]) {
  3620.         if (yyvsp[-1]) {
  3621.             yyval = cons (yyvsp[-2], cons (yyvsp[-1], cons (yyvsp[0], make_empty_list ())));
  3622.         } else {
  3623.             yyval = cons (yyvsp[-2], cons (yyvsp[0], make_empty_list ()));
  3624.         }
  3625.         } else {
  3626.         yyval = cons (yyvsp[-2], cons (yyvsp[-1], make_empty_list ()));
  3627.         }
  3628.     }
  3629.     break;
  3630.     case 253:
  3631. #line 1068 "dylan.y"
  3632.     {
  3633.         if (yyvsp[0]) {
  3634.         yyval = cons (yyvsp[-1], cons (yyvsp[0], make_empty_list ()));
  3635.         } else {
  3636.         yyval = yyvsp[-1];
  3637.         }
  3638.     }
  3639.     break;
  3640.     case 254:
  3641. #line 1075 "dylan.y"
  3642.     {
  3643.         yyval = yyvsp[0];
  3644.     }
  3645.     break;
  3646.     case 255:
  3647. #line 1097 "dylan.y"
  3648.     {
  3649.         bindings_increment ();
  3650. #ifdef OPTIMIZE_SPECIALIZERS
  3651.         symtab_insert_bindings (yyvsp[0]);
  3652. #endif
  3653.         yyval = cons (local_bind_symbol,
  3654.               cons (yyvsp[0], make_empty_list ()));
  3655.     }
  3656.     break;
  3657.     case 257:
  3658. #line 1105 "dylan.y"
  3659.     {
  3660.         methnames = methdefs = make_empty_list ();
  3661.     }
  3662.     break;
  3663.     case 258:
  3664. #line 1108 "dylan.y"
  3665.     {
  3666.         Object methbindings = cons (append (methnames,
  3667.                         cons (cons (values_symbol,
  3668.                                 methdefs),
  3669.                               make_empty_list ())),
  3670.                     make_empty_list ());
  3671.  
  3672. #ifdef OPTIMIZE_SPECIALIZERS
  3673.         symtab_insert_bindings (methbindings);
  3674. #endif
  3675.         bindings_increment ();
  3676.         yyval = cons (local_bind_symbol,
  3677.               cons (methbindings,
  3678.                 make_empty_list ()));
  3679.     }
  3680.     break;
  3681.     case 259:
  3682. #line 1124 "dylan.y"
  3683.     {
  3684.         yyval = yyvsp[0];
  3685.     }
  3686.     break;
  3687.     case 261:
  3688. #line 1127 "dylan.y"
  3689.     {
  3690.         yyval = yyvsp[0];
  3691.     }
  3692.     break;
  3693.     case 262:
  3694. #line 1131 "dylan.y"
  3695.     {
  3696.         methnames = cons (FIRST (yyvsp[0]), methnames);
  3697.         methdefs = cons (cons (method_symbol, CDR (yyvsp[0])), methdefs);
  3698.     }
  3699.     break;
  3700.     case 263:
  3701. #line 1136 "dylan.y"
  3702.     {
  3703.         methnames = cons (FIRST (yyvsp[-1]), methnames);
  3704.         methdefs = cons (cons (method_symbol, CDR (yyvsp[-1])), methdefs);
  3705.     }
  3706.     break;
  3707.     case 265:
  3708. #line 1144 "dylan.y"
  3709.     {
  3710.         yyval = cons (cons (yyvsp[-2], cons (yyvsp[0], make_empty_list ())),
  3711.               make_empty_list ());
  3712.     }
  3713.     break;
  3714.     case 266:
  3715. #line 1147 "dylan.y"
  3716.     {
  3717.         yyval = cons (append_bang (yyvsp[-3], cons (yyvsp[0], make_empty_list ())),
  3718.               make_empty_list ());
  3719.     }
  3720.     break;
  3721.     case 267:
  3722. #line 1151 "dylan.y"
  3723.     {
  3724.         yyval = cons (yyvsp[0], make_empty_list ());
  3725.     }
  3726.     break;
  3727.     case 268:
  3728. #line 1153 "dylan.y"
  3729.     {
  3730.         yyval = cons (yyvsp[-2], yyvsp[0]);
  3731.     }
  3732.     break;
  3733.     case 269:
  3734. #line 1155 "dylan.y"
  3735.     {
  3736.         yyval = cons (yyvsp[-1], cons (yyvsp[0], make_empty_list ()));
  3737.     }
  3738.     break;
  3739.     case 270:
  3740. #line 1159 "dylan.y"
  3741.     {
  3742.         yyval = cons (yyvsp[0], make_empty_list ());
  3743.     }
  3744.     break;
  3745.     case 271:
  3746. #line 1161 "dylan.y"
  3747.     {
  3748.         yyval = cons (yyvsp[-2], yyvsp[0]);
  3749.     }
  3750.     break;
  3751.     case 272:
  3752. #line 1163 "dylan.y"
  3753.     {
  3754.         yyval = cons (yyvsp[-1], cons (yyvsp[0], make_empty_list ()));
  3755.     }
  3756.     break;
  3757.     case 273:
  3758. #line 1167 "dylan.y"
  3759.     {
  3760.         yyval = (yyvsp[0] ? cons (yyvsp[-1], cons (yyvsp[0], make_empty_list ()))
  3761.              : yyvsp[-1]);
  3762.     }
  3763.     break;
  3764.     case 274:
  3765. #line 1171 "dylan.y"
  3766.     {
  3767.         yyval = yyvsp[0];
  3768.     }
  3769.     break;
  3770.     case 275:
  3771. #line 1172 "dylan.y"
  3772.     {
  3773.         yyval = yyvsp[0];
  3774.     }
  3775.     break;
  3776.     case 276:
  3777. #line 1175 "dylan.y"
  3778.     {
  3779.         yyval = NULL;
  3780.     }
  3781.     break;
  3782.     case 277:
  3783. #line 1176 "dylan.y"
  3784.     {
  3785.         yyval = yyvsp[0];
  3786.     }
  3787.     break;
  3788.     case 278:
  3789. #line 1179 "dylan.y"
  3790.     {
  3791.         yyval = yyvsp[0];
  3792.     }
  3793.     break;
  3794.     case 279:
  3795. #line 1181 "dylan.y"
  3796.     {
  3797.         yyval = yyvsp[0];
  3798.     }
  3799.     break;
  3800.     case 280:
  3801. #line 1187 "dylan.y"
  3802.     {
  3803.         yyval = cons (yyvsp[0], make_empty_list ());
  3804.     }
  3805.     break;
  3806.     case 281:
  3807. #line 1188 "dylan.y"
  3808.     {
  3809.         yyval = cons (yyvsp[-1], yyvsp[0]);
  3810.     }
  3811.     break;
  3812.     case 282:
  3813. #line 1192 "dylan.y"
  3814.     {
  3815.         yyval = cons (yyvsp[-1], yyvsp[0]);
  3816.     }
  3817.     break;
  3818.     case 283:
  3819. #line 1194 "dylan.y"
  3820.     {
  3821.         yyval = yyvsp[0];
  3822.     }
  3823.     break;
  3824.     case 284:
  3825. #line 1195 "dylan.y"
  3826.     {
  3827.         yyval = yyvsp[-1];
  3828.     }
  3829.     break;
  3830.     case 285:
  3831. #line 1198 "dylan.y"
  3832.     {
  3833.         yyval = cons (yyvsp[0], make_empty_list ());
  3834.     }
  3835.     break;
  3836.     case 286:
  3837. #line 1199 "dylan.y"
  3838.     {
  3839.         yyval = cons (yyvsp[-2], yyvsp[0]);
  3840.     }
  3841.     break;
  3842.     case 287:
  3843. #line 1202 "dylan.y"
  3844.     {
  3845.         yyval = yyvsp[0];
  3846.     }
  3847.     break;
  3848.     case 288:
  3849. #line 1204 "dylan.y"
  3850.     {
  3851.         yyval = cons (yyvsp[-2], yyvsp[0]);
  3852.     }
  3853.     break;
  3854.     case 289:
  3855. #line 1207 "dylan.y"
  3856.     {
  3857.         yyval = yyvsp[0];
  3858.     }
  3859.     break;
  3860.     case 290:
  3861. #line 1213 "dylan.y"
  3862.     {
  3863.         yyval = NULL;
  3864.     }
  3865.     break;
  3866.     case 291:
  3867. #line 1214 "dylan.y"
  3868.     {
  3869.         yyval = yyvsp[0];
  3870.     }
  3871.     break;
  3872.     case 304:
  3873. #line 1241 "dylan.y"
  3874.     {
  3875.         yyval = make_empty_list ();
  3876.     }
  3877.     break;
  3878.     case 305:
  3879. #line 1242 "dylan.y"
  3880.     {
  3881.         yyval = yyvsp[0];
  3882.     }
  3883.     break;
  3884.     case 306:
  3885. #line 1245 "dylan.y"
  3886.     {
  3887.         yyval = make_empty_list ();
  3888.     }
  3889.     break;
  3890.     case 307:
  3891. #line 1246 "dylan.y"
  3892.     {
  3893.         yyval = yyvsp[0];
  3894.     }
  3895.     break;
  3896.     case 308:
  3897. #line 1249 "dylan.y"
  3898.     {
  3899.         yyval = make_empty_list ();
  3900.     }
  3901.     break;
  3902.     case 309:
  3903. #line 1250 "dylan.y"
  3904.     {
  3905.         yyval = yyvsp[0];
  3906.     }
  3907.     break;
  3908.     case 310:
  3909. #line 1253 "dylan.y"
  3910.     {
  3911.         yyval = cons (list_symbol,
  3912.               make_empty_list ());
  3913.     }
  3914.     break;
  3915.     case 311:
  3916. #line 1255 "dylan.y"
  3917.     {
  3918.         yyval = yyvsp[0];
  3919.     }
  3920.     break;
  3921.     case 312:
  3922. #line 1258 "dylan.y"
  3923.     {
  3924.         yyval = NULL;
  3925.     }
  3926.     break;
  3927.     case 313:
  3928. #line 1259 "dylan.y"
  3929.     {
  3930.         yyval = yyvsp[0];
  3931.     }
  3932.     break;
  3933.     case 314:
  3934. #line 1272 "dylan.y"
  3935.     {
  3936.         yyval = make_empty_list ();
  3937.     }
  3938.     break;
  3939.     case 315:
  3940. #line 1273 "dylan.y"
  3941.     {
  3942.         yyval = yyvsp[0];
  3943.     }
  3944.     break;
  3945.     case 316:
  3946. #line 1282 "dylan.y"
  3947.     {
  3948.         yyval = make_empty_list ();
  3949.     }
  3950.     break;
  3951.     case 317:
  3952. #line 1283 "dylan.y"
  3953.     {
  3954.         yyval = yyvsp[0];
  3955.     }
  3956.     break;
  3957.     case 318:
  3958. #line 1286 "dylan.y"
  3959.     {
  3960.         yyval = make_empty_list ();
  3961.     }
  3962.     break;
  3963.     case 319:
  3964. #line 1287 "dylan.y"
  3965.     {
  3966.         yyval = yyvsp[0];
  3967.     }
  3968.     break;
  3969.     case 320:
  3970. #line 1290 "dylan.y"
  3971.     {
  3972.         yyval = make_empty_list ();
  3973.     }
  3974.     break;
  3975.     case 321:
  3976. #line 1291 "dylan.y"
  3977.     {
  3978.         yyval = yyvsp[0];
  3979.     }
  3980.     break;
  3981.     case 322:
  3982. #line 1294 "dylan.y"
  3983.     {
  3984.         yyval = make_empty_list ();
  3985.     }
  3986.     break;
  3987.     case 323:
  3988. #line 1295 "dylan.y"
  3989.     {
  3990.         yyval = yyvsp[0];
  3991.     }
  3992.     break;
  3993.     case 324:
  3994. #line 1298 "dylan.y"
  3995.     {
  3996.         yyval = NULL;
  3997.     }
  3998.     break;
  3999.     case 325:
  4000. #line 1299 "dylan.y"
  4001.     {
  4002.         yyval = yyvsp[0];
  4003.     }
  4004.     break;
  4005.     case 326:
  4006. #line 1302 "dylan.y"
  4007.     {
  4008.         yyval = make_empty_list ();
  4009.     }
  4010.     break;
  4011.     case 327:
  4012. #line 1303 "dylan.y"
  4013.     {
  4014.         yyval = yyvsp[0];
  4015.     }
  4016.     break;
  4017. #line 3467 "y.tab.c"
  4018.     }
  4019.     yyssp -= yym;
  4020.     yystate = *yyssp;
  4021.     yyvsp -= yym;
  4022.     yym = yylhs[yyn];
  4023.     if (yystate == 0 && yym == 0) {
  4024. #if YYDEBUG
  4025.     if (yydebug)
  4026.         printf ("yydebug: after reduction, shifting from state 0 to\
  4027.  state %d\n", YYFINAL);
  4028. #endif
  4029.     yystate = YYFINAL;
  4030.     *++yyssp = YYFINAL;
  4031.     *++yyvsp = yyval;
  4032.     if (yychar < 0) {
  4033.         if ((yychar = yylex ()) < 0)
  4034.         yychar = 0;
  4035. #if YYDEBUG
  4036.         if (yydebug) {
  4037.         yys = 0;
  4038.         if (yychar <= YYMAXTOKEN)
  4039.             yys = yyname[yychar];
  4040.         if (!yys)
  4041.             yys = "illegal-symbol";
  4042.         printf ("yydebug: state %d, reading %d (%s)\n",
  4043.             YYFINAL, yychar, yys);
  4044.         }
  4045. #endif
  4046.     }
  4047.     if (yychar == 0)
  4048.         goto yyaccept;
  4049.     goto yyloop;
  4050.     }
  4051.     if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
  4052.     yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
  4053.     yystate = yytable[yyn];
  4054.     else
  4055.     yystate = yydgoto[yym];
  4056. #if YYDEBUG
  4057.     if (yydebug)
  4058.     printf ("yydebug: after reduction, shifting from state %d \
  4059. to state %d\n", *yyssp, yystate);
  4060. #endif
  4061.     if (yyssp >= yyss + yystacksize - 1) {
  4062.     goto yyoverflow;
  4063.     }
  4064.     *++yyssp = yystate;
  4065.     *++yyvsp = yyval;
  4066.     goto yyloop;
  4067.   yyoverflow:
  4068.     yyerror ("yacc stack overflow");
  4069.   yyabort:
  4070.     return (1);
  4071.   yyaccept:
  4072.     return (0);
  4073. }
  4074.